
この戦略は革新的なものです包括的なロングとショートの自動先物取引戦略SuperTrend,QQEとTrend Indicator A-V2の複数の指標を統合し,取引信号を自動発見し,多空取引を行う.この戦略は,市場の主なトレンドを発見し,リスクを管理した前提で安定した収益を得ることを目的としています.
戦略原則
この戦略は主に3つの部分に基づいています.
スーパートレンド指数は,市場の主要トレンド方向を判断する.価格が上向きの線を超えると看板であり,下向きの線を超えると下向きである.
QQE指標は,RSIと結合して,超買超売り状態を判断する.RSIの平均値,標準差に基づいて,動的上下限を計算する.RSIが上限より高い時は超買シグナル,下限より低い時は超売りシグナルである.
Trend Indicator A-V2指標は,EMA速慢線位置を計算してトレンドを判断する.速速線は慢線より高く,信号を見る.
市場方向を判断する際には,SuperTrendが看板で,QQEが超売れていないと判断し,A-V2が看板であるとき,多信号で入場する.SuperTrendが看板で,QQEが超売れていないと判断し,A-V2が看板であるとき,空信号で入場する.
戦略的優位性
複数の指標を統合して,取引決定を信頼し,偽信号を減らす.
自動で取引シグナルを検出し,人工の介入なしに判断し,人間の誤りを減らすことができます.
指標のオーガニック・コンビネーションを利用して,シグナルを検出しながら,リスクをコントロールし,安定した利益を達成します.
パラメータは調整可能で,ユーザーは自分の好みに合わせてカスタマイズできる.
単一,多重,双方向の取引を可能にし,取引の柔軟性も確保する.
リスクと解決
市場特殊な状況では,指標は誤った信号を発し,指標パラメータを最適化することで減少させることができる.
取引コストと滑り点は,戦略的利益の空間に影響を及ぼす可能性があり,ストップ・ストップ・メカニズムを実装することで最適化することができる.
指数パラメータの設定が不適切である場合,戦略の不良なパフォーマンスを引き起こす可能性があります.
最適化の方向
マシン学習のアルゴリズムを追加し,歴史データに基づいて指標パラメータを自動的に最適化して,戦略をより賢くする.
取引量,外場などのデータにより,より効率的な取引シグナルを抽出できます.
高周波取引技術を適用し,アルゴリズムモデルを通じて自動的に注文を提出し,取引を実行する.
要約する
この戦略は,市場構造を判断する複数の指標を統合し,リスクを制御する前提で安定した利益を達成し,トレンド方向を考慮するとともに,超買い超売り状態を兼ね備える取引決定がより細かくなります.最適化余地が広く,パラメータ最適化,構造最適化,実行最適化などの面で戦略のパフォーマンスをさらに向上させることができます.
/*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=4
//author:盧振興 芙蓉中華中學畢業 育達科技大學畢業碩士
//參考資料 : QQE MOD By:Mihkel00 ,SuperTrend By:KivancOzbilgic , TrendIndicator A-V2 By:Dziwne
strategy("綜合交易策略", shorttitle="Comprehensive Strategy", overlay=true)
// 添加單邊或多空參數
OnlyLong = input(true, title="單邊")
// SuperTrend 参数
PeriodsST = input(9, title="ST ATR Period")
MultiplierST = input(3.9, title="ST ATR Multiplier")
srcST = input(hl2, title="ST Source")
atrST = atr(PeriodsST)
upST = srcST - (MultiplierST * atrST)
upST := close[2] > upST[1] ? max(upST, upST[1]) : upST
dnST = srcST + (MultiplierST * atrST)
dnST := close[2] < dnST[1] ? min(dnST, dnST[1]) : dnST
trendST = 1
trendST := nz(trendST[1], trendST)
trendST := trendST == -1 and close[2] > dnST[1] ? 1 : trendST == 1 and close[2] < upST[1] ? -1 : trendST
// QQE 参数
RSI_PeriodQQE = input(6, title='QQE RSI Length')
SFQQE = input(5, title='QQE RSI Smoothing')
QQE = input(3, title='QQE Fast Factor')
ThreshHoldQQE = input(3, title="QQE Thresh-hold")
srcQQE = input(close, title="QQE RSI Source")
Wilders_PeriodQQE = RSI_PeriodQQE * 2 - 1
RsiQQE = rsi(srcQQE, RSI_PeriodQQE)
RsiMaQQE = ema(RsiQQE, SFQQE)
AtrRsiQQE = abs(RsiMaQQE[1] - RsiMaQQE)
MaAtrRsiQQE = ema(AtrRsiQQE, Wilders_PeriodQQE)
darQQE = ema(MaAtrRsiQQE, Wilders_PeriodQQE) * QQE
basisQQE = sma(RsiMaQQE - 50, 50)
devQQE = 0.35 * stdev(RsiMaQQE - 50, 50)
upperQQE = basisQQE + devQQE
lowerQQE = basisQQE - devQQE
qqeCondition = RsiMaQQE[1] - 50 > upperQQE[1] ? true : RsiMaQQE[1] - 50 < lowerQQE[1] ? false : na
// Trend Indicator A-V2 参数
ma_periodA_V2 = input(52, title="TIA-V2 EMA Period")
oA_V2 = ema(open, ma_periodA_V2)
cA_V2 = ema(close, ma_periodA_V2)
trendIndicatorAV2Condition = cA_V2[1] >= oA_V2[1] ? true : false
// 综合交易逻辑
longCondition = trendST == 1 and qqeCondition and trendIndicatorAV2Condition
shortCondition = trendST == -1 and not qqeCondition and not trendIndicatorAV2Condition
// 针对多单的开平仓逻辑
if (OnlyLong)
if (longCondition)
strategy.entry("Buy", strategy.long)
else
strategy.close("Buy")
// 多空都做时的逻辑
if (not OnlyLong)
if (longCondition)
strategy.entry("Buy", strategy.long)
else if (shortCondition)
strategy.entry("Sell",strategy.short)
// 添加多空平仓逻辑
if (not longCondition)
strategy.close("Buy")
if (not shortCondition)
strategy.close("Sell")
// 可视化信号
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition and not OnlyLong, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")