Эта стратегия динамически рассчитывает уровни поддержки и сопротивления на основе исторических высоких, низких и близких цен и генерирует соответствующие торговые сигналы.
Вычислить среднее значение высоких, низких и закрытых цен предыдущих периодов в качестве поворотного пункта (PP).
Вычислить 3 линии поддержки: S1 = 2PP - самая высокая цена; S2 = PP - (R1-S1); S3 = самая низкая цена - 2(самая высокая цена - PP).
Вычислим 3 линии сопротивления: R1 = 2PP - самая низкая цена; R2 = PP + (R1-S1); R3 = самая высокая цена + 2(PP - самая низкая цена).
Принимать длинную позицию, когда цена проходит через линии сопротивления, принимать короткую позицию, когда цена проходит через линии поддержки.
Динамические уровни поддержки и сопротивления, основанные на исторических данных, могут своевременно отражать изменения структуры рынка.
Многослойные настройки поддержки и сопротивления позволяют лучше оптимизировать управление рисками.
Простые и интуитивные торговые сигналы и механизм остановки потерь.
Уровни референтных цен, предоставляемые историческими данными, могут стать недействительными в сценариях высокой волатильности.
При переключении между длинными и короткими позициями следует учитывать стоимость торговли.
Качество данных должно быть гарантировано, чтобы избежать ошибок при расчете.
Подумайте о включении более исторических ссылок на данные, таких как 100-дневная скользящая средняя и т.д.
Оптимизировать размер позиций, например, корректировать размер позиций на основе волатильности.
Добавьте стратегии стоп-лосса, такие как стоп-лосс или стоп-лосс, основанные на риске.
Эта стратегия обеспечивает многоуровневые уровни поддержки и сопротивления, основанные на истории. Она имеет простую и простую логику, подходящую для средне- и долгосрочных позиций. Между тем, риски при высокой волатильности рынка и торговых затратах должны контролироваться. Дальнейшая оптимизация может сделать стратегию надежной в сложных условиях.
/*backtest start: 2023-10-28 00:00:00 end: 2023-11-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 09/06/2020 // Pivot points simply took the high, low, and closing price from the previous period and // divided by 3 to find the pivot. From this pivot, traders would then base their // calculations for three support, and three resistance levels. The calculation for the most // basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and // resistance levels. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Pivot Point V2", shorttitle="Pivot Point V2", overlay = true) res = input(title="Resolution", type=input.resolution, defval="D") SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3"]) BuyFrom = input(title="Buy from ", defval="S1", options=["S1", "S2", "S3"]) width = input(1, minval=1) reverse = input(false, title="Trade reverse") xHigh = security(syminfo.tickerid,res, high) xLow = security(syminfo.tickerid,res, low) xClose = security(syminfo.tickerid,res, close) vPP = (xHigh+xLow+xClose) / 3 vS1 = 2*vPP - xHigh vR1 = 2*vPP-xLow vS2 = vPP - (vR1 - vS1) vR2 = vPP + (vR1 - vS1) vS3 = xLow - 2 * (xHigh - vPP) vR3 = xHigh + 2 * (vPP - xLow) pos = 0 S = iff(BuyFrom == "S1", vS1, iff(BuyFrom == "S2", vS2, iff(BuyFrom == "S3", vS3,0))) B = iff(SellFrom == "R1", vR1, iff(SellFrom == "R2", vR2, iff(SellFrom == "R3", vR3,0))) pos := iff(close > B, 1, iff(close < S, -1, nz(pos[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 )