이 전략은 혁신적입니다.종합 롱숏 자동 선물 거래 전략SuperTrend, QQE 및 Trend Indicator A-V2의 여러 지표를 통합하여 자동으로 거래 신호를 발견하고 다중 하위 거래를 수행합니다. 이 전략은 시장의 주요 추세를 탐색하여 위험을 잘 통제하는 조건에서 안정적인 수익을 얻으려는 것입니다.
전략 원칙
이 전략은 크게 세 가지로 구성되어 있습니다.
슈퍼트렌드 지표는 시장의 주요 트렌드 방향을 판단하는 역할을 한다. 가격이 상향 회전선을 넘으면 부진이며, 상향 회전선을 넘으면 하락한다.
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")