
双均線交差策略は,比較的単純な量的な取引策策である.それは,最近7つのK線の平均閉店価格と20のK線の平均閉店価格を計算することによって,短期平均線が下から長期平均線を横切るときに多めに行い,短期平均線が上から下から長期平均線を横切るときに空いて行い,このような操作を行うことで,市場の中期トレンドの転換点を捉えることができる.
この戦略の核心的な論理は,最近7つのK線 (現在のK線を含まない) の平均閉店価格を短期平均として計算し,20つのK線 (最近の7つのK線を含まない) の平均閉店価格を長期平均として計算する.短期平均線が下から長期平均線を横切るときは,市場が逆転して上昇することを示す.短期平均線が上から下から長期平均線を横切るときは,市場が逆転して低下することを示す.
多数シグナルを触発した後に,全口座資金の量に応じて多額のポジションを開設する.空白シグナルを触発した後に,多数のポジションを平らにして多数のポジションを,その量に応じて空白のポジションを開設する.開設した後のポジションは20-25Kラインを保持する.この間,損失が発生した場合,半分のポジションを停止し,十分な利益が発生した場合,半分のポジションを停止する.
これは非常に単純な双均線交差策で,その優位性は主に次の通りです.
これは,よりシンプルなトレンド追跡戦略ですが,いくつかの潜在的なリスクがあります.
上記のリスクに対して,以下の方法で最適化できます.
これは,よりシンプルな双均線交差戦略であり,主に以下のいくつかの側面から深層に最適化することができます:
平均線パラメータを最適化し,異なる短期および長期平均線組み合わせをテストし,最適なパラメータを探します.
エネルギー指標,波動率指標などの他のフィルタリング指標を追加し,波動的な市場において誤った信号を回避する.
ストップストップ戦略を最適化し,異なるストップストップ比率をテストし,最適なパラメータを決定する.
異なる市場サイクルをテストし,ポジションの長さを最適化し,どの周期で戦略が最も効果的かを判断する.
戦略のパラメータを反転テストで継続的に最適化し,戦略をより安定させるための機械学習アルゴリズムを追加します.
この戦略は,異なる周期の均線交差を計算して,中間期トレンド転換点を判断する比較的単純な双均線交差戦略である.この戦略は,実用性が強く,考え方が簡単で操作が容易である.しかし,この戦略には一定の限界がある.主な問題は,市場の真の転換点を効果的に判断できないことである.将来,フィルタリング指標の追加,最適化パラメータ,機械学習の追加などの観点から,この戦略の継続的な最適化が求められ,より多くのタイプの市場で安定したアルファを得ることができる.
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
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/
// © nrathi2211
//@version=5
strategy("Closing Prices", overlay=true)
//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000
//functions
qty_find(float price) => capital / int(price)
profit_take() =>
profit = strategy.opentrades.profit(strategy.opentrades - 1)
profit*.95
if(closingB7 < closingB14)
if(ta.crossover(close, closingB7))
strategy.entry("long_buy", strategy.long, qty_find(close))
current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
if(current_profit < 0)
strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
else if(current_profit < profit_take())
strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
if(ta.crossunder(close, closingB7))
strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)
plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)