リチャード の カメ 貿易 戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-06 11:56:47
タグ:

img

概要

リチャード・デニス・タートル・トレーディング・ストラテジー (Richard's Turtle Trading Strategy) は,リチャード・デニス・タートル・トレーディング・テクニックをベースにしたトレーディング・ストラテジーである.トレンドを追跡するために価格のブレイクを利用する.価格が20日間の高値を突破するとロングになり,価格が20日間の低値を突破するとショートとなる.

戦略の論理

リチャードの亀取引戦略の核心論理は,価格ブレイクに基づいたトレンドを追跡することである.特に,この戦略は過去20日間の最高値 (_20_day_highest) と最低値 (_20_day_lowest) の価格を継続的に監視する.閉値が20日間の高値を突破すると,上向き突破をシグナル化し,ロングオーダーを誘発する.閉値が20日間の低値を下回ると,下向き突破をシグナル化し,ショートオーダーを誘発する.

ストップ・ロスの価格を計算するために,ストラテジーは平均真差 (ATR) を使用する.また,スリップストップ・ロスの10日間の高値と低値を追跡する.ロングストップ・ロスまたはスリップストップ・ロスがトリガーされた場合,ロングポジションを閉じる.ショートストップ・ロスまたはスリップストップ・ロスがトリガーされた場合,ショートポジションを閉じる.

利点

リチャードの亀取引戦略には以下の利点があります

  1. 価格ブレイクを使用して 傾向を自動的に追跡し 傾向の逆転を自動的に特定し 順応的にポジションを調整できます
  2. ATRストップ損失メカニズムは,単一のストップ損失を効果的に制御します.
  3. スリッパージ・ストップ・ロスのメカニズムは 利益の一部を固定し 引き下げを減らす
  4. 戦略の論理は,初心者にとってシンプルで理解しやすい.
  5. 市場動向を予測したり 複雑な計算をする必要はありません 単純なルールに基づく取引だけです

リスク

リチャードの亀取引戦略には リスクもあります

  1. ブレイク・トレードが罠にかかったり,取引頻度が過剰になったりします.
  2. ATR と スリップストップ損失は過度に厳格で,時には早期ストップ損失を引き起こす可能性があります.
  3. 傾向の継続性を予測するために他の要因を組み合わせることなく 価格データを利用するだけです
  4. バックテストは過剰なリスクで 実際の取引結果は悪くなります

これらのリスクを軽減するために 傾向を予測するためのより多くの指標で 入場条件を最適化し ストップロスの頻度を減らすためにストップロスのアルゴリズムを調整できます

オプティマイゼーションの方向性

リチャードの亀取引戦略は,次の側面で最適化することができます:

  1. パラメータを最適化して最適なパラメータの組み合わせを見つけ,例えば計算サイクルを調整したり,異なるATR倍数をテストしたりする.
  2. 動向平均,モメント指標など,傾向の継続性を判断するためのより多くの指標や機械学習アルゴリズムを組み込む.
  3. 柔軟な滑り停止損失,後続停止損失などのストップ損失方法を最適化します.
  4. 市場動向を予測するために センチメント指標,ニュース,その他の情報を組み合わせます. これは,いくつかの偽のブレイクをフィルタリングすることができます.

結論

リチャードのタートル取引戦略は,トレンドフォロー戦略の非常に典型的なブレイクアウト戦略である. シンプルで実践的で,初心者が学ぶのに良い,そして量子取引パラダイムである. 戦略はリスクを軽減し,収益性を高めるために多くの方法で最適化することができます. 全体的に,リチャードのタートル戦略は非常に啓発的です.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

もっと