
この戦略は,前日の開場価格と閉場価格,そして快線EMAと慢線EMAの組み合わせを使用して,ユーザが定義する取引時間帯で,市場の価値方向を判断し,それに応じて買入または販売操作を行う.同時に,戦略は,利益をロックまたは損失を制限するためにストップトラッキングを使用する.
この戦略は,金本位の方向性を判断する上で,主に2つのポイントをベースにしています.
前日の閉店価格が開店価格に比べて急落した.閉店価格が開店価格より高いと,その日の価値が全体的に上昇したことを示している.閉店価格が開店価格より低いと,その日の価値が全体的に低下したことを示している.
50周期の快線EMAと200周期の慢線EMAの位置関係である.快線が慢線の上である場合,短期的な値上昇の速度が長期的傾向より大きいことを示す.快線が慢線の下である場合,短期的な値上昇の速度が長期的傾向より小さいことを示す.
複数取引条件を満たしている場合,前日の閉盘価格が開盘価格より高く,現在の価格が前日の開盘価格より高く,快線EMAが遅線EMAより高く,ユーザが定義する取引時間内に,戦略的に多金本位を行う.
短引条件を満たしている場合,前日の閉盘価格が開盘価格より低ければ,現在の価格が前日の開盘価格より低ければ,快線EMAが慢線EMAより低ければ,ユーザ定義の取引時間内に,策略は短引金本位とする.
さらに,戦略は,トラッキングストロップを使用して利益をロックしたり,損失を制限したりします.トラッキングストロップ距離は,ユーザが設定した初期距離と移動ステップに応じて調整されます.
この戦略の利点は以下の通りです.
複数の指標を使って金本位の価値方向を判断し,誤った取引の確率を下げている.
トラッキング・ストップは,利益を効果的にロックし,市場が逆転したときに,早期にストップ・ストップし,リスクを低減する.
ユーザは,自分の取引時間に応じて適切な取引区間を選択し,制度的な操作の時に閉じ込められることを避けることができます.
EMAの周期値は,市場の変化に応じて調整・最適化され,戦略をより弾力的にすることができる.
この戦略にはリスクもあります.
突発的な事件が発生すると,戦略により大きな損失が生じることがあります.これは人工介入またはより緩やかな止損距離の設定を必要とする.
EMAは市場騒音を完全にフィルターすることはできません.EMAが誤った信号を生成すると,不必要な取引が引き起こされます.EMAパラメータを適切に最適化したり,他のフィルタリング指標を追加したりできます.
追跡止損距離の設定が不適切であることもリスクを増やす.距離が近すぎると止損アウトが容易になり,距離が遠すぎると損失を効果的に制御できない.最適なパラメータを決定するためのテストが必要である.
この戦略は,以下の点で最適化できます.
MACD,Bollinger Bandsなどの他の技術指標のフィルタリング信号を追加し,EMAの誤信号の確率を下げます.
追跡ストップを自主ストップに変更し,市場の波動程度に応じてストップ距離をスマートに調整します.
ポジション管理モジュールを追加し,単一の損失の影響を軽減するために,リスク管理を分担します.
機械学習モデルの増加により,トレンドの方向性を判断し,より多くの歴史的データを使用して判断の正確性を向上させる.
取引時間の選択を最適化し,通常の分布選択戦略の関与がより高い取引区間を組み合わせます.
この戦略は,全体的に見ると,典型的なトレンドフォロー戦略である.複数の指標を組み合わせて,価値の上昇または下降のトレンド方向を判断する戦略は,より堅牢な戦略のタイプに属している.ストップトラッキングの適用も,損失を効果的に制御できるようにしている.指標とストップルールの継続的な最適化により,戦略は,リターンとリスク管理の間のより良いバランスを得ることができる.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("My Strategy", overlay=true)
// Inputs for user to modify
startHour = input(11, title="Start Hour")
endHour = input(16, title="End Hour")
trailingStop = input(100, title="Trailing Stop Start (pips)")
trailingStep = input(10, title="Trailing Step (pips)")
// Define the EMAs
longEma = ema(close, 200)
shortEma = ema(close, 50)
// Calculate daily open, high, low, close
daily_open = security(syminfo.tickerid, "D", open[1])
daily_close = security(syminfo.tickerid, "D", close[1])
// Time conditions
timeAllowed = (hour >= startHour) and (hour <= endHour)
// Define long condition based on your criteria
longCondition = (daily_close > daily_open) and (close > daily_open) and (shortEma > longEma) and timeAllowed
// Define short condition based on your criteria
shortCondition = (daily_close < daily_open) and (close < daily_open) and (shortEma < longEma) and timeAllowed
// Enter the trade
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Trailing Stop Loss
strategy.exit("Exit Long", "Long", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick)
strategy.exit("Exit Short", "Short", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick)
// Plotting
plot(daily_open, color=color.red, title="Daily Open")
plot(longEma, color=color.blue, title="200 EMA")
plot(shortEma, color=color.orange, title="50 EMA")