この戦略は,9日移動平均 (MA),20日移動平均 (MA),200日移動平均 (MA) の間のクロスオーバー状況を計算することによって市場のトレンドを決定する.これは長期トレンドを測定する200日移動平均 (MA) とダブルMAクロスオーバーの古典的なアイデアを組み合わせます.これは比較的安定し信頼性の高いトレンド取引戦略です.
この戦略では,主に9日間MA,20日間MAと200日間MAの関係を計算して価格動向を判断する.
まず,9日間MAと20日間MAを計算する. 9日間のMAが20日間のMAを超えると,それは買い信号である. 9日間のMAが20日間のMAを下回ると,それは売り信号である. これは二重MAクロスオーバーの最も基本的な判断ルールである.
2つ目は,長期動向を判断するための指標として200日間MAを計算する.20日間のMAが200日間のMAを超えると,長期的に上昇傾向を示します.20日間のMAが200日間のMAを下回ると,長期的に下落傾向を示します.
最後に, 9 日間MA,20 日間MAと 200 日間MAの関係を組み合わせて,特定のエントリーと出口点を決定します. 9 日間MAと 20 日間MAが同じ方向に交差するときにのみ,実際の取引信号が生成されます.
この戦略は,複数の市場管理機関間のクロスオーバー状況を計算することで,市場管理機関が動向を追跡する能力を充分活用し,短期的および長期的価格動向を効果的に決定し,それによって買取・売却操作を導く.
双重MAクロスオーバーを使用することで,中短期間の価格動向を効果的に把握し,利益を生むことができます.
200日間のMA判断を加えると,長期の下落傾向で長期化しないことで損失を減らすことができます.
複数のMA関係を組み合わせることで,シグナルがより信頼性が高くなり,非効率な取引が回避されます.
MAのクロスオーバー信号は明確で判断が容易で,手動取引に適しています.
シンプルでクリーンなコードは理解し,実装が容易で,量子取引の初心者にとって良いです.
柔軟な最適化,例えば MA 期間を調整したり,他の指標を追加したり.
MA戦略はパラメータ調整に敏感で,異なるMA期間が非常に異なる結果を生むことができます.
ダブルMAクロスオーバーは中期短期間のトレンドのみを判断し,長期間の大きなトレンドを見逃す可能性があります.
クロスオーバー・シグナルが遅れてしまい,完全に取引の損失を回避することはできません.
頻繁な取引は,手数料とスリップコストを増加させ,実際の利益の可能性を低下させます.
過剰にシンプルなコードは ライブ取引では劣悪なパフォーマンスを発揮し 最適化が必要になります
最適なパラメータを見つけるために,異なるMA期間組み合わせを試験する.
ストップ・ロスの戦略を追加し,取引損失額を厳格に管理する.
市場状況の変化に応じてポジションのサイズを考慮する.
進出信号を最適化します 例えばモメントの確認を追加します
合理的な利益のレベルを設定することで 退出を最適化します
傾向や引き下げの可能性を判断する指標を追加します
より複雑な取引の論理を発見するために 機械学習モデルを追加します
この戦略は,MAトレンドフォローする特徴を使用して取引決定を導くために,ダブルMAクロスオーバーと長期MAトレンド判断のクラシックなアイデアを組み合わせています. シンプルな論理があり,理解し実行しやすく,量子トレード初心者にとって良いです. しかし,パラメータに敏感であり,さらなる最適化と改善を必要とする遅れの問題があります. 全体的に,この戦略は,より強力な取引システムを開発するために拡張できる基本的な枠組みを提供します. 投資家は,定量取引で長期的な過剰収益を達成するために,ニーズに基づいて戦略を追加し,継続的に最適化するために適切な要素を選択することができます.
/*backtest start: 2023-10-29 00:00:00 end: 2023-11-05 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=1 strategy("Dieyson Swingtrade EMA 20+200 and bar & line color", overlay=true) //bar color rules Dgbar = close>close[1] and ema(close,20)>ema(close[1],20) Drbar = close<close[1] and ema(close,20)<ema(close[1],20) //Barcolors barcolor(Dgbar ? green : na) barcolor(Drbar ? red : na) //MM09 Colorful MMgreen9 = ema(close,9)>ema(close[1],9) and ema(close,20)>ema(close[1],20) MMred9 = ema(close,9)<ema(close[1],9) and ema(close,9)<ema(close[1],9) col8 = (MMgreen9 ? color(green,0) : na) col28 = (MMred9 ? color(red,0) : na) col38 = (not MMgreen9 and not MMred9 ? color(black,0) : na) //plot(ema(close,9), color=col8, style=line, linewidth=1) //plot(ema(close,9), color=col28, style=line, linewidth=1) //plot(ema(close,9), color=col38, style=line, linewidth=1) //MM20 Colorful MMgreen = ema(close,20)>ema(close[1],20) MMred = ema(close,20)<ema(close[1],20) col = (MMgreen ? color(green,0) : na) col2 = (MMred ? color(red,0) : na) col3 = (not MMgreen and not MMred ? color(yellow,0) : na) col4 = color(black,0) plot(ema(close,20), color=col, style=line, linewidth=2) plot(ema(close,20), color=col2, style=line, linewidth=2) plot(ema(close,20), color=col3, style=line, linewidth=2) plot(ema(close,200), color=col4, style=line, linewidth=3) //plot(vwap(15), color(white,0), style=line, linewidth=3) //plot(cross(ema(close,9), ema(close,20)) ? ema(close,9) : na, style = cross,color=fuchsia, transp=0, linewidth = 4) plot(cross(ema(close,20), ema(close,200)) ? ema(close,20) : na, style = cross,color=fuchsia, transp=0, linewidth = 4) c = crossover(ema(close,9), ema(close,20)) and ema(close,9) > ema(close,20) // c = crossover(close, ema (close,9) and ema(close,9) > ema(close[1],9)) v = crossunder(close, ema (close,9)) strategy.entry("COMPRA", strategy.long,when=c) strategy.entry("VENDA", strategy.short,when=v)