イチモク・クラウド量子スカルピング戦略は,イチモク・クラウドと平均方向指数 (ADX) を統合した短期的定量戦略である.イチモク・クラウドを使用してトレンド方向を決定し,ADXを使用してトレンド条件下でスカルピングのためのトレンド以外の市場をフィルタリングする.
戦略は2つの主要要素から構成されています.
イチモク・クラウドがトレンド方向を判断する
雲の上の価格は上昇傾向を示し,下の値は下落傾向を示します.この戦略は,トレンドの逆転を決定するためにコンバーションラインのブレイクを使用します.
ADXは,非トレンド市場をフィルタリングする
ADXが20を超えるとのみシグナルを受け取り,トレンド市場を示唆する. ADXが範囲限定市場中に<20である場合,取引しない.
貿易規則:
この戦略の利点は
トレンドをフォローし,範囲を避ける. イチモク・クラウドは,トレンド方向とターニングポイントを正確に決定することができます. ADXは,誤ったブレイクを防ぐために,範囲に制限された市場をフィルターします.
引き下げ制御 150 ティックのストップ損失 取引損失の有効な制限
利潤因子は高です 200トークで利益を得ると 150トークでストップ損失を得ると 利潤因子は1.33になります 利潤を得るのは簡単です
適正な取引頻度 傾向が現れるときのみ取引は過度な取引を防ぐ.
リスクは次のとおりです.
トレンド決定の失敗リスク. イチモク・クラウドがトレンド逆転を検出できないときに誤った信号. 精度を向上させるためにパラメータを最適化することができます.
ストップ・ロスはリスクにさらされる. ストップ・ロスは,高速な市場中に侵入できる. トレイリング・ストップ・ロスは,より広いストップ・ロスの範囲を使用できる.
オーナイトおよびプレマーケット取引リスク. デフォルト設定では日取引のみが許可されます. 延長時間中に判断が失敗する可能性があります. 24H取引を有効にしたり,延長セッションのための戦略をカスタマイズすることができます.
潜在的な最適化方向:
イチモク雲のパラメータ調節で 最適な設定を見つけます
ADXパラメータと極限の最適化により 最適値が決定される.
利益目標とストップロスの最適化
ストップロスを後押しして トレンドを順守する
トレンド決定を助けるMACDとKDのような追加指標
異なる製品に対する適応性最適化
イチモク・クラウド・量子スカルピング戦略は,トレンド逆転点を正確に決定し,レンジ・バインド市場をフィルタリングするために,イチモク・クラウドとADXの利点を統合している.高利益因子,制御可能な引き下げがあり,トレンドに沿ってスカルピングに適している.パラメータ,ストップ損失,補助指標のさらなる改善により,安定性と収益性が向上する.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title='[STRATEGY][RS]Spot/Binary Scalper V0', shorttitle='IC', overlay=true, initial_capital=100000, currency=currency.USD) // || Adapted from: // || http://www.binaryoptionsedge.com/topic/1414-ta-spot-scalping-it-works-damn-good/?hl=singh // || Ichimoku cloud: conversionPeriods = input(title='Conversion Periods:', defval=7, minval=1), basePeriods = 26//input(title='Base Periods', defval=26, minval=1) laggingSpan2Periods = 52//input(title='Lagging Span:', defval=52, minval=1), displacement = 26//input(title='Displacement:', defval=26, minval=1) f_donchian(_len) => avg(lowest(_len), highest(_len)) f_ichimoku_cloud(_conversion_periods, _base_periods, _lagging_span)=> _conversion_line = f_donchian(_conversion_periods) _base_line = f_donchian(_base_periods) _lead_line1 = avg(_conversion_line, _base_line) _lead_line2 = f_donchian(_lagging_span) [_conversion_line, _base_line, _lead_line1, _lead_line2] [conversionLine, baseLine, leadLine1, leadLine2] = f_ichimoku_cloud(conversionPeriods, basePeriods, laggingSpan2Periods) //ps0 = plot(title='A', series=leadLine1, color=green, linewidth=2) //ps1 = plot(title='B', series=leadLine2, color=red, linewidth=2) //fill(title='AB', plot1=ps0, plot2=ps1, color=blue, transp=80) //plot(title='Base', series=baseLine, color=blue, linewidth=1, offset=displacement) plot(title='Conversion', series=conversionLine, color=blue, linewidth=1) // ||----------------------------------------------------------------------------------------------------------------------------------------------|| // || ADX len = input(title="Length", defval=14) th = input(title="threshold", defval=20) TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100 ADX = sma(DX, len) // ||----------------------------------------------------------------------------------------------------------------------------------------------|| // || Trade session: USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true) trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false) istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session)) bgcolor(istradingsession?gray:na) // ||----------------------------------------------------------------------------------------------------------------------------------------------|| // || Strategy: trade_size = input(title='Trade Size:', defval=1) stop_loss_in_ticks = input(title='Stop Loss in ticks:', defval=150) take_profit_in_ticks = input(title='Take Profit in ticks:', defval=200) buy_icloud_signal = open < conversionLine and close > conversionLine buy_adx_signal = DIPlus > 20 buy_signal = istradingsession and buy_icloud_signal and buy_adx_signal sel_icloud_signal = open > conversionLine and close < conversionLine sel_adx_signal = DIMinus > 20 sel_signal = istradingsession and sel_icloud_signal and sel_adx_signal strategy.order('buy', long=true, qty=trade_size, comment='buy', when=buy_signal) strategy.order('sel', long=false, qty=trade_size, comment='sel', when=sel_signal) strategy.exit('exit buy', from_entry='buy', profit=take_profit_in_ticks, loss=stop_loss_in_ticks) strategy.exit('exit sel', from_entry='sel', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)