
Стратегия теневого трейдинга определяет время, когда рынок может перевернуться, путем идентификации длинной нижней или длинной верхней теневой линии на линии K. Когда вы идентифицируете длинную нижнюю теневую линию, делайте больше; когда вы идентифицируете длинную верхнюю теневую линию, делайте пустое.
Центральная логика стратегии теневой торговли состоит в том, чтобы идентифицировать длинные верхние и нижние тени, которые появляются в линии K. Стратегия рассчитывает величину объекта линии K.corpoи размер тенейpinnaL、pinnaSКогда размер теневой линии больше, чем некоторое количество размера объекта, считается, что может возникнуть возможность обращения. В частности, стратегия включает следующие шаги:
corpo, то есть абсолютное значение разницы между ценой открытия и ценой закрытия.pinnaL, то есть абсолютное значение разницы между максимальной ценой и ценой закрытия.pinnaS, то есть абсолютное значение разницы между минимальной ценой и ценой закрытия.pinnaL > (corpo*size),sizeЭто регулируемый параметр.pinnaS > (corpo*size)。Кроме того, стратегия определяет величину колебаний K-линии.dimБольше минимального значенияminС помощью фильтра удаляйте неинтересные K-линии, которые слишком малы для колебаний. После входа в игру установите Stop Loss и Stop Stop Exit.
Теневая торговая стратегия - это относительно простая и практичная стратегия торговли на коротких линиях. Она использует общий закон обратного обращения длинных теневых линий для создания торговых сигналов. Логика стратегии проста, проста в реализации и может быть скорректирована и оптимизирована в соответствии с различиями в сортах.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-11 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Shadow Trading", overlay=true)
size = input(1,type=float)
pinnaL = abs(high - close)
pinnaS = abs(low-close)
scarto = input(title="Tail Tollerance", type=float, defval=0.0018)
corpo = abs(close - open)
dim = abs(high-low)
min = input(0.001)
shortE = (open + dim)
longE = (open - dim)
barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na)
longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto)
minimo=low+scarto
massimo=high+scarto
barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na)
shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
//plot(shortE)
//plot(longE)
//plot(open)
ss= shortcond ? close : na
ll=longcond ? close : na
offset= input(0.00000)
DayClose = 2
closup = barssince(change(strategy.opentrades)>0) >= DayClose
longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto)
crossFlag = longcond ? 1 : 0
monthBegin = input(1,maxval = 12)
yearBegin = input(2013, maxval= 2015, minval=2000)
if(month(time)>monthBegin and year(time) >yearBegin)
if (longcond)
strategy.entry("short", strategy.short, stop = low - offset)
//strategy.close("short", when = closup)
shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
if(month(time)>monthBegin and year(time) >yearBegin)
if (shortcond)
strategy.entry("long", strategy.long, stop = high + offset)
//strategy.close("long", when = closup)
Target = input(20)
Stop = input(70) //- 2
Trailing = input(0)
CQ = 100
TPP = (Target > 0) ? Target*10: na
SLP = (Stop > 0) ? Stop*10 : na
TSP = (Trailing > 0) ? Trailing : na
strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)