Эта стратегия сочетает в себе две количественные торговые стратегии для получения более точных и надежных торговых сигналов. Первая стратегия основана на изменении цены, а вторая основана на анализе объема. Совместные сигналы могут эффективно повысить прибыльность.
Стратегия состоит из двух частей:
Использует индикатор STO для обратных сигналов. Длинный, когда ближайший поднимается на 2 дня, а медленная линия STO ниже 50.
Анализирует соотношение цена-объем в течение периода, чтобы определить направление, с скользящей средней сглаживанием.
Он идет длинным, когда обе стратегии сигнализируют длинный, и идет коротким, когда обе сигнализируют короткий.
Комбо улучшает качество сигнала, значительно уменьшая ложные сигналы от любой стратегии.
Риски могут быть уменьшены:
Стратегия может быть улучшена путем:
Оптимизация параметров STO
Ценности тонкой настройки K, D для лучших комбинаций
Вторичное подтверждение нарушения объема
С такими показателями, как MACD, BOLL и т.д.
Оптимизация периодов скользящих средних
Испытание различных периодов для более стабильных сигналов
Добавление шаблонов диаграммы
Ввод на шаблоны в дополнение к комбинации сигналов
Испытания специфических для продукта параметров
Параметры могут варьироваться в зависимости от продукции
Эта стратегия сочетает в себе стратегии обратного движения и объема для улучшения качества и точности сигнала. Но оптимизация параметров, дополнительные технические индикаторы и т. Д. могут еще больше улучшить производительность. Мы можем постоянно корректировать на основе результатов бэкстеста, проверять в режиме реального времени, чтобы получить действительно надежную стратегию комбинирования. Это требует огромного времени и усилий, но и вознаграждения будут значительными.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-20 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 21/10/2020 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // This is another version of FVE indicator that we have posted earlier // in this forum. // This version has an important enhancement to the previous one that`s // especially useful with intraday minute charts. // Due to the volatility had not been taken into account to avoid the extra // complication in the formula, the previous formula has some drawbacks: // The main drawback is that the constant cutoff coefficient will overestimate // price changes in minute charts and underestimate corresponding changes in // weekly or monthly charts. // And now the indicator uses adaptive cutoff coefficient which will adjust to // all time frames automatically. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos FVI(Samples,Perma,Cintra,Cinter) => pos = 0 xhl2 = hl2 xhlc3 = hlc3 xClose = close xIntra = log(high) - log(low) xInter = log(xhlc3) - log(xhlc3[1]) xStDevIntra = stdev(sma(xIntra, Samples) , Samples) xStDevInter = stdev(sma(xInter, Samples) , Samples) xVolume = volume TP = xhlc3 TP1 = xhlc3[1] Intra = xIntra Vintra = xStDevIntra Inter = xInter Vinter = xStDevInter CutOff = Cintra * Vintra + Cinter * Vinter MF = xClose - xhl2 + TP - TP1 FveFactor = iff(MF > CutOff * xClose, 1, iff(MF < -1 * CutOff * xClose, -1, 0)) xVolumePlusMinus = xVolume * FveFactor Fvesum = sum(xVolumePlusMinus, Samples) VolSum = sum(xVolume, Samples) xFVE = (Fvesum / VolSum) * 100 xEMAFVE = ema(xFVE, Perma) pos :=iff(xFVE > xEMAFVE, 1, iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Samples = input(22, minval=1) Perma = input(40, minval=1) Cintra = input(0.1) Cinter = input(0.1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posFVI = FVI(Samples,Perma,Cintra,Cinter) pos = iff(posReversal123 == 1 and posFVI == 1 , 1, iff(posReversal123 == -1 and posFVI == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )