
この戦略は,機械学習の方法を利用して,開箱式自動取引戦略を実現している.これは,複数の指標とモデルを統合し,取引信号を自動的に生成し,信号に基づいて購入と販売を行うことができる.
この戦略は,以下のポイントを中心に展開されています.
具体的には,戦略は,フール平均線,13サイクルEMAと21サイクルEMAを描画する.EMAの空白状態によって,短期および中期トレンドの方向を判断する.フール平均線と組み合わせて,より長い周期のトレンドを判断する.これは,その後の取引シグナルのための大方向の指針を提供する.
ポジションを調整する前に,戦略は,実体チャネル内の最高価格と最低価格の対応するサポートとレジスタンスレベルを参照する.これは,重要な価格領域で取引シグナルを生じることを避ける.
最後に,戦略は60周期の開盘価格と閉盘価格を呼び出し,閉盘価格の上を横切ると買入シグナルを生じ,下を横切ると売出シグナルを生じます. このようにして,取引の論理が完了します.
この戦略の最大の利点は,機械学習と技術分析の指標を組み合わせて,論理的に明確で,パラメータが調整可能で,操作が容易な自動取引プログラムを実現することです.
戦略は,単に1つまたは2つの指標に依存するのではなく,トレンド,サポートレジスタンス,価格突破などの複数の要因を総合的に考慮し,信号の信頼性と正確性を大幅に向上させました.
hull平均線長,EMA周期数,開盘閉盘交差周期数など,パラメータによって調整され,戦略が異なる市場環境に柔軟に適応できる.
指数と価格の交差に基づく取引信号は,人工判断を必要とせず,操作の難易度を減らすために,自動で買入と売却を誘発することができる.
戦略のグラフは,市場構造,トレンド状態,重要な価格を明確に示し,戦略判断の根拠を直観的に示すことができます.
この戦略は多面的に最適化されていますが,いくつかのリスクがあります.
価格が急激に変動する状況では,指標は失効したり遅延したりし,戦略が価格変化をタイムリーに追跡することができない.この状況に対応するためにパラメータを最適化する必要があります.
指数やモデルに基づく取引信号では,誤報や漏報が多少存在する.これは,より多くの補助信号を組み合わせることで信号の質を向上させる必要がある.
策略は,同時に多額の空白を行い,誤った判断をすれば,双方向の損失のリスクに直面する.これは,厳格な損失の切り離しまたはポジションの減少を制御する必要がある.
参数設定が複雑すぎるため,最適化過度のリスクがある.これは,システムを簡素化し,参数組み合わせの数を制御する必要がある.
この戦略は,以下のような部分で改善できる.
既存の指標に加えて,BOLLチャネル,KD指標などのより多くの補助指標を導入することができ,システムの判断基盤を豊かにすることができる.
信号の質を向上させるために,Simple indicatorsを特徴として使用し,LSTMなどのディープラーニングモデルを訓練する.
マクロ経済データ,政策情報などの基本要素を追加し,大周期決策を最適化する.
ストップ・ローズ戦略を導入し,戦略による収益変動率の動的調整によりポジションの規模を調整し,リスクを厳格に制御する.
この戦略は,トレンド,サポート抵抗,突破などの複数の指標を統合し,機械学習方法を活用して自動化された開箱式定量取引プログラムを実現する. それは,指標のポートフォリオの多様性,パラメータの調整性,信号の自動化などの優位性を持ち,また,特定の追跡偏差,信号誤差,多空MIXなどの問題に直面する. 将来,より多くの補助指標とモデルが導入され,基本的要素,動的位置調整などの方向に深く最適化され,より安定,正確,スマートな定量取引効果を達成することができる.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)
//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")
//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
strategy.entry("SELL", strategy.short)
plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")
///////////////////////////////////////////////////////////////////////////////////////////