
この戦略は,K線の閉盘価格と開盤価格の関係に基づいて,現在のトレンドの方向を判断し,長ポジションまたは短ポジションのシグナルを生成する.具体的には,閉盘価格が開盤価格より高い場合は多信号を生成する.閉盘価格が開盤価格より低い場合は空調信号を生成する.
この戦略は,主に以下の2つの判断条件に基づいて取引シグナルを生成します.
取引開始シグナル判断: 取引終了価格が取引開始価格 ((close > open) よりも高く,取引開始時間に達した場合,多値シグナルを生成する. 取引終了価格が取引開始価格 ((close < open) よりも低く,取引開始時間に達した場合,取引終了シグナルを生成する.
平仓条件:開仓シグナルとは反対で,もし多仓の場合は,損失条件は,閉盘価格が開盘価格より低いとATRの値を加え,ストップ条件は,閉盘価格が開盘価格より高いとATRを掛けてストップの比率を加え;もし空白の場合は,その逆である.
このような設計によって,この戦略は,K線方向の情報を充分利用し,現在のトレンド方向を判断し,トレンドをタイムリーに追跡できる信号を生成します.同時に,ストップとストップストップの基準は,ATRというダイナミックな指標に基づいており,固定ポイント数による問題を回避します.
この戦略の最大の利点は,K線方向の判断とトレンド追跡能力の強さにある.入場信号の判断は,シンプルで明確で,容易に理解でき,同時に開盤時間条件と組み合わせて,夜間リスクを回避する.止損ストップの標準的な動態の変化,ポジションの規模を自動的に調整できる.
全体として,この戦略は反応が敏捷で,追跡能力が強いため,1時間,4時間といった中間周期でトレンドキャプチャを行うのに適しています.
この戦略に伴う主なリスクは,
取引回数が多く,取引手数料や滑点の影響を受けやすい。止まり掛け数を適当に調整して最適化することができる。
K線が背などの状況が発生すると,誤信号が生じることがあります.他の指標と組み合わせて除することができます.
ATRパラメータの設定は,止損ストップの効果に影響する.ATRの長さとストップの倍数は,市場に応じて調整する必要がある.
営業時間設定も信号効果に影響する.市場によって異なる営業時間設定が必要である.
この戦略のさらなる改善には以下の項目が含まれます.
移動平均などの指標と組み合わせたシグナルフィルタリングにより,価格変動による誤信号を処理する.
ポジション管理機構を増やし,波動率などの指標によって1回投入資金の規模を制御する.
機械学習などの方法を使用して,ストロップ・ストップのパラメータを動的に最適化して,リアルタイム市場に応じて調整できるようにする.
感情指数などの方法と組み合わせて,市場の熱さを判断し,全体的なポジションをコントロールする.
この戦略は全体的に反応しやすく,トレンドを効果的に捉えることができる.簡単なK線の閉盘価格と開盘価格を比較して,方向を判断し,シグナルを生成する.同時に,ストップ・ストップ・損失基準は動的ATR指標を採用し,波動率に応じてポジションを調整することができる.最適化余地はまだ十分であり,さらに他の指標と組み合わせてフィルタリングやパラメータの調整を行うことができる.
/*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"}]
*/
//@version=5
strategy("Go with Trend Strategy", overlay=true)
// Input settings
startHour = input(9, title="Start Hour for Entries")
activateLong = input(true, title="Activate Long")
activateShort = input(true, title="Activate Short")
takeProfitRatio = input(1.5, title="Take Profit Ratio")
// Calculate ATR
atrLength = 14 // You can change this value as needed
atrValue = ta.atr(atrLength)
// Calculate entry conditions
enterLong = close > open and hour >= startHour
enterShort = close < open and hour >= startHour
// Strategy logic
if (activateLong and enterLong)
strategy.entry("Long", strategy.long)
if (activateShort and enterShort)
strategy.entry("Short", strategy.short)
// Stop loss and take profit conditions
strategy.exit("Exit Long", from_entry="Long", loss=close - atrValue, profit=close + takeProfitRatio * atrValue)
strategy.exit("Exit Short", from_entry="Short", loss=close + atrValue, profit=close - takeProfitRatio * atrValue)