このトレンドフォロー戦略は,価格が上昇する三角形形成から突破して,急速なEMAが中間EMAを下回るとポジションを閉じる.ストップ・ロストとテイク・プロフィートはリスクを制御するために設定されています.
トレンド方向を決定するために,高速EMAと中期EMAを使用します.高速EMAが中期EMAを超越することは長い信号です.
上昇する三角形が形成されているかどうかを判断するために,最後のNバーの最高値と最低値を使用します.三角形形成は長い信号を提供します.
入場後,高速EMAが中期EMAを下回ると,トレンド逆転を示し,出口信号を発します.
ストップ・ロスの出口の入場価格より一定の割合でストップ・ロスを設定する.
部分的な利益の獲得の為,入場価格の上での一定の割合で利益の獲得目標を設定します.
200日間の EMA を使って,全体的なトレンドの方向性を決定します.トレンドが上昇するときにだけ取引します.
三角形は 偽の突破をフィルターし 入力の精度を向上させる
Fast EMA vs Medium EMA は,トレンドとコンソリデーションを合理的に区切る.
合理的なストップ・ロストとメリット・テイク・プロフィート設定は,単一の取引損失を制御する.
上向きのトレンドで取引するだけで 不安定な時期は避けられます
狭すぎた三角形範囲はトレンドを見逃し,幅が広い範囲は不要な取引を増やす可能性があります.パラメータNは最適化する必要があります.
ストップ・ロスはあまりにも近すぎると早速停止し,幅が広い場合は損失を制御できなくなります.パラメータを評価し最適化します.
誤った部分的な取利益設定は,利益過剰につながる可能性があります.適切な比率を評価します.
誤った傾向指標パラメータは,誤った位置方向につながる可能性があります.多製品バックテスト最適化が必要です.
最適値を見つけるために,三角形決定のためのパラメータNを最適化します.
トレンドの正確性を向上させるために,異なる EMA 期間の組み合わせをテストする.
ストップ・ロスのパラメータを最適化し 製品の特徴に基づいて 利益を取ります
MACD パターン,ボリンジャー ブレイクアウトなどの他の指標を追加して信号の質を向上させる.
再開メカニズムを追加して 傾向が続くときに 利益を拡大します
この戦略は,信号精度を向上させる三角形形成で全体的に堅牢である.さらなる強化のために大きなパラメータ最適化空間が存在している.さらに,より多くの補助指標を追加したり,より効果的なストップ・ロスト/テイク・プロフィートを改善したりしてみてください.全体的にこの戦略は,戦略に従う質のトレンドになる可能性があります.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 1h 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/ // © mohanee //@version=4 strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD) // variables BEGIN numPeriods=input(9,title="Number of Bars") fastEMA = input(13, title="fast EMA", minval=1) slowEMA = input(65, title="slow EMA", minval=1) stopLoss = input(title="Stop Loss%", defval=5, minval=1) HH = highest(close[1],numPeriods) LL = lowest(close[1],numPeriods) tringlePoint = low > LL and high < HH fastEMAval= ema(close, fastEMA) slowEMAval= ema(close, slowEMA) two100EMAval= ema(close, 200) //plot emas plot(fastEMAval, color = color.green, linewidth = 1, transp=0) plot(slowEMAval, color = color.orange, linewidth = 1, transp=0) plot(two100EMAval, color = color.purple, linewidth = 2, transp=0) longCondition=fastEMAval>two100EMAval and tringlePoint //plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar) //plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar) //Entry strategy.entry(id="TBT LE", comment="TBT LE" , long=true, when= longCondition and strategy.position_size<1) //Add strategy.entry(id="TBT LE", comment="Add" , long=true, when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price) //barcolor(strategy.position_size>=1 ? color.blue : na) //Take profit takeProfitVal= strategy.position_size>=1 ? (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00 //strategy.close(id="TBT LE", comment="Profit Exit", qty=strategy.position_size/2, when=close>=takeProfitVal and close<open and close<fastEMAval) //crossunder(close,fastEMAval) barcolor(strategy.position_size>=1 ? (close>takeProfitVal? color.purple : color.blue): na) //Exit strategy.close(id="TBT LE", comment="TBT Exit", when=crossunder(fastEMAval,slowEMAval)) //stoploss stopLossVal= strategy.position_size>=1 ? (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00 //stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) )) strategy.close(id="TBT LE", comment="SL Exit", when= close < stopLossVal)