использование нескольких таймфреймов для покупки или продажи - PullRequest
0 голосов
/ 12 июня 2019

Использование одного индикатора на 1M и 5M для получения сигнала только тогда, когда на 1M происходит кросс, в то время как индикатор на 5M находится ниже нулевой линии.

Создан tickerID и защита для 1M и 5M и используетсяcrossover () для 1M и индикатора <0 и объединены оба. </p>

//@version=3
study(title="Sobh-New-HA-Study-Short", shorttitle="Sobh-New-HA-Study-Short", overlay=true)

///////////////// START Getting the HA candle /////////////////

openHA  = security(heikinashi(tickerid), period, open)
closeHA = security(heikinashi(tickerid), period, close)
highHA  = security(heikinashi(tickerid), period, high)
lowHA  = security(heikinashi(tickerid), period, low)
////////////

haTicker = heikinashi(tickerid)
haOpenValue(r) =>  security(haTicker, r, open)
haCloseValue(r) =>  security(haTicker, r, close)
halowValue(r)  => security(haTicker, r, low)
hahighValue(r) =>  security(haTicker, r, high)

Close1MHA=haCloseValue("1")
Open1MHA=haOpenValue("1")
High1MHA=hahighValue("1")
Low1MHA=halowValue("1")

Close5MHA=haCloseValue("5")
Open5MHA=haOpenValue("5")
High5MHA=hahighValue("5")
Low5MHA=halowValue("5")

///////////////////////////////////////////////////////////////////////
study(title="WaveTrend [LazyBear]", shorttitle="WT_LB")
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")

////////////////////////////////1MIN////////////////////////////////////////

ap1HA = (High1MHA + Low1MHA + Close1MHA)/3 
esa1HA = ema(ap1HA, n1)
d1HA = ema(abs(ap1HA - esa1HA), n1)
ci1HA = (ap1HA - esa1HA) / (0.015 * d1HA)
tci1HA = ema(ci1HA, n2)

wt1HA = tci1HA          //// Green Indicator
wt2HA = sma(wt1HA,4)   //// Red Indicator

//////////////////////////5MIN///////////////////////////////////

apHA = (High5MHA + Low5MHA + Close5MHA)/3 
esaHA = ema(apHA, n1)
dHA = ema(abs(apHA - esaHA), n1)
ciHA = (apHA - esaHA) / (0.015 * dHA)
tciHA = ema(ciHA, n2)

wt5HAOne = tciHA          //// Green Indicator
wt5HATwo = sma(wt5HAOne,4)   //// Red Indicator

ema2005MHA = ema(Close5MHA, 200)
plot(ema(close, 200),linewidth=4,transp=0,color=orange)

//////////////////////////// SMA 50 //////////////////////////////
lenSimple = input(50, minval=1)
srcSimple = input(close)
sma50 = sma(srcSimple, lenSimple)

/////////////////////////////////////////////////////////////////
plot(sma50, color=aqua, linewidth=4,title="SMA 50",transp=0)

/////////////////////

PriceCloseAboveSMA50= Close5MHA > sma50
PriceCloseBelow50SMA= sma50 > Close5MHA
BearMarket= ema2005MHA > sma50
BullMArket= sma50 > ema2005MHA
wt5HAOneBelowZero= wt5HATwo < 0
Buy =   wt5HAOneBelowZero and crossover(wt1HA,wt2HA)  
Sell =   crossunder(wt5HAOne,wt5HATwo)

plotshape(Buy ,location=location.top, style=shape.diamond, color=lime, size=size.small)
plotshape(Sell ,location=location.top, style=shape.diamond, color=red, size=size.small)

Я должен получить сигнал известь алмазов (покупка), построенный только тогда, когда индикатор wt1HA пересекает вес wt2HA и ТОЛЬКО когда wt5HATwo <0 </p>

Но то, что я получил, это сигнал на 1М, когда происходит кросс, относительно того, находится ли 5М выше или ниже нуля

Я прикрепил изображение, которое показывает, что сигнал происходит на 1М (номер 1)и (номер 2), но, как вы можете видеть на 5M в точное время, индикатор выше 0 (номер 3 см. нулевую линию).Таким образом, этот сигнал на 1M не должен быть напечатан как зеленый известковый алмаз на 1M.

enter image description here

...