
Эта стратегия основана на динамическом расчете исторических высоких, низких и закрывающихся цен, полученных на уровне поддержки и сопротивления, и с помощью этого генерируется торговый сигнал. Эта стратегия применима для позиций средней и длинной линии, которые могут эффективно использовать поддержку и сопротивление на рынке для получения прибыли.
Вычислите средние значения максимальной, минимальной и закрывающей цены за предыдущий цикл и получите базисную точку PP.
Вычислить 3 линии опоры: S1 = 2PP - самая высокая цена; S2 = PP - (R1-S1); S3 = самая низкая цена - 2(Самая высокая цена - PP)
Рассчитайте 3 линии сопротивления: R1 = 2PP - минимальная цена; R2 = PP + (R1-S1); R3 = максимальная цена + 2(ПП - минимальная цена)
Когда цена пересекает линию сопротивления, делайте больше; когда цена пересекает линию поддержки, делайте пустоту.
Динамика изменения уровня сопротивления поддержки, основанная на исторических данных, позволяет в реальном времени запечатлеть структуру рынка.
Установка многоуровневой поддерживающей резистентности позволяет оптимизировать управление рисками.
Простые, интуитивно понятные торговые сигналы и способы остановки убытков.
В условиях высокой волатильности цены, предоставляемые историческими данными, могут быть недействительными.
Переход между многочисленными свободными позициями требует учета стоимости сделки.
Необходимо обеспечить качество данных, чтобы избежать ошибок в расчетах.
Можно рассмотреть возможность использования дополнительных исторических данных, таких как 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 )