この戦略は,2つの異なるパラメータセットのランダムな指標を使用し,多空条件判断を実現し,典型的な均線交差システムに属します. 急速な指標を使用して短期的な傾向と入場タイミングを判断し,遅い指標は大きな傾向の方向を決定し,両者は取引信号を形成します.
急速ランダム指数K値は短期トレンドの方向を示し,K線が移動平均SM1を交差して入場信号を形成する.
慢速ランダム指標のK値は,大トレンドの状況を反映する. 速速指標が反転信号を示すとき,慢速指標が大方向を判断する合理性を確認する.
K速がSM1を突破するときは看板信号とみなし,K速が50より大きいときは,大傾向向上を示し,多行条件を満たす.
KがSM1を速やかに下を通るときは,下向きの信号とみなす.Kが50未満になると,大傾向は下向きであり,空調条件を満たす.
固定比率のストップストップを設定する.
2つのランダムな指標で騒音をフィルタリングし,成功率を上げます.
SM1のパラメータは小さく,K指標は感度が高く,ショートラインの機会を捉えるのに適している.
大周期は大きなトレンドを判断し,小周期は逆転を捕捉する.多空戦略はほとんどの市場状況に合致する.
固定ストップ・ストップ・ポイント,リスク・リターン・コントロール,過大に波動しやすいものではない.
指数間の偏差が発生すると,取引機会が逃れ,または誤った信号が生じます.
固定ストップ・ストラストポイントは柔軟性がないため,市場の変化に合わせて調整できない.
lbl指数パラメータは,繰り返し最適化テストを必要とし,不適切な場合は失効する.
短期取引は取引頻度が高く,取引コストが高くなる.
他の指標やフィルタリング条件を追加して,指標信号の質を確保する.
異なるパラメータの組み合わせをテストし,最適なパラメータ配置を見つけます.
波動率指標などと組み合わせて,ストップ・ストップ・損失の水平の動的調整を行う.
時間のフィルターで,重要な出来事を回避し,不合理な波動を制御する.
資金管理戦略の最適化,選択的にポジションの増減,資金使用効率の向上.
この戦略は,快速でランダムな指標を統合して多空取引システムを形成する.しかし,さらに最適化パラメータを設定する必要があり,トレンド,波動率などの指標をフィルタリング条件として補足する.この戦略は,リスクを厳格に制御した場合に,比較的安定した余剰収益を得ることができる.
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Double Stochastic", overlay=true)
//-----------------------Stochastics------------------------//
c= security(syminfo.tickerid,timeframe.period , close)
h= security(syminfo.tickerid, timeframe.period, high)
l= security(syminfo.tickerid, timeframe.period, low)
c1= security(syminfo.tickerid, timeframe.period, close)
h2= security(syminfo.tickerid, timeframe.period, high)
l1= security(syminfo.tickerid, timeframe.period, low)
K1 = input(5, title="K", minval=1, title="Leading K")
SM1 = input(2, title="Smooth", minval=1, title="Leading Smooth ")
k = ema(stoch(c, h, l, K1), SM1)
K2 = input(97, title="K", minval=1, title="Lagging K")
D2 = input(3, title="D", minval=1, title="Lagging D")
SM2 = input(1, title="Smooth", minval=1, title="Lagging Smooth")
k1 = ema(stoch(c1, h2, l1, K2), SM2)
// buy ((k[2] < 40 and k > 40) and bars_up > 0 and k1 > 50)
// sell (k[2] > 60 and k < 60) and bars_down > 0 and k1 < 50
//-----------------------Mechanics------------------------//
buy = k1 > 50 and k < 30 and k > k[1] ? 1 : 0
sell = k1 < 50 and k > 70 and k < k[1] ? 1 : 0
buy_val = valuewhen(buy == 1, close, 1)
sell_val = valuewhen(sell == 1, close, 1)
buy_close = buy_val * input(1.20, minval=0.1)
sell_close = sell_val / input(1.20, minval=0.1)
//------------------------Buy/Sell-------------------------//
longCondition = buy == 1
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
close_long = close >= buy_close
if (close_long)
strategy.close("My Long Entry Id")
sellCondition = sell == 1
if (sellCondition)
strategy.entry("My Short Entry Id", strategy.short)
close_short = close <= sell_close
if (close_short)
strategy.close("My Short Entry Id")