
双平線フォロー戦略は,移動平均に基づいてトレンドフォロー戦略である.それは,異なる周期の移動平均を計算して,トレンドの方向を判断して,取引信号を発信する.短期移動平均線上に長期移動平均線を横切るときは,多行し,短期移動平均線の下に長期移動平均線を横切るときは,空行する.この戦略は,トレンドに沿って運行して,利益を得る.
二重均線策は,14周期と28周期の単純な移動平均 (SMA) を計算してトレンドの方向を判断する戦略に従います.具体的には,各周期の終わりに,クローズ価格の14周期SMAと28周期SMAを計算します.14周期SMAで28周期SMAを突破すると,多信号を発信し,ロングポジションを開きます.14周期SMAの下で28周期SMAを突破すると,空信号を発信し,ロングポジションを開きます.
ポジションに入ると,ストップとストップを設定してリスクを制御する. ストップとストップのポイントは,入力されたパラメータを価格に変換する. さらに,ストップライン,ストップライン,入場平均価格の参照ラインをグラフに描いて,ポジションの利益とリスクを直感的に判断する.
この戦略は以下の利点があります.
この戦略にはいくつかのリスクがあります.
上記のリスクを制御するために,以下の方法で最適化できます.
この戦略は,以下の点で最適化できます.
波動率指数を増やし,動的にストップポイントを調整する.例えばATR指数と組み合わせて,市場の波動が強くなるとストップポイントを拡大し,早すぎるストップポイントを回避する.
移動平均周期パラメータを最適化します. より多くの組み合わせをテストし,取引信号の発生頻度に適した周期を選択できます.
トレンドフィルターを追加する.例えば,MACD,DMIなどの指標を追加し,トレンドの終わりに発生する偽信号を回避し,不要な取引を減らす.
機械学習モデルを追加する.LSTM,GRUなどの深度学習モデルを使用して,価格動向を予測し,従来の均等線法則の代わりに,より良い効果が得られる可能性がある.
多品種取引 戦略を多品種に適用し,非関連性を利用して全体的な撤収を減らす
双均線フォロー戦略は,全体としてシンプルで実用的なトレンド戦略である。それはトレンドに順応して動いて,撤退リスクは小さく,実行しやすい。周期パラメータを調整し,ストップ・ロスを設定し,トレンド判断指標を追加することによって,この戦略を最適化することができ,より多くの市場環境に適応し,より安定した投資収益を得ることができる。
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © coinilandBot
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov
// @description
//
//@version=4
strategy("coiniland copy trading platform", overlay=true)
// random entry condition
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
moneyToSLPoints(money) =>
strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na
p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)
// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)