inserimento indicatore in strategia
Forums › ProRealTime forum Italiano › Supporto ProOrder › inserimento indicatore in strategia
- This topic has 5 replies, 3 voices, and was last updated 6 years ago by luxrun.
-
-
07/31/2018 at 3:39 PM #77201
Salve, vorrei inserire l’indicatore di Nicolas all’interno della mia strategia, ma senza usare la funzione call e cioè senza richiamarlo.
Vorrei ad esempio creare una condizione che dice: quando il prezzo è superiore a “questo indicatore”
Per “questo indicatore” non so pero’ quale stringa prendere di riferimento all’interno del codice.
Allego L’indicatore di Nicolas
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137//PRC_Adaptive-ATR-ADX-Trend-V2 | indicator//29.06.2017//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge//translated from tradingview code// --- settings//atrLen = 21//m1 = 3.5 //"ATR Multiplier - ADX Rising"//m2 = 1.75 //"ATR Multiplier - ADX Falling"//adxLen = 14//adxThresh = 30 //"ADX Threshold"//aboveThresh = 1 //true, title = "ADX Above Threshold uses ATR Falling Multiplier Even if Rising?")//useHeiken = 1 //(false, title = "Use Heiken-Ashi Bars (Source will be ohlc4)")// --- end of settingssource = MedianPrice// DI-Pos, DI-Neg, ADXhR = high-high[1]lR = -(low-low[1])if hr>lr thendmPos=max(hr,0)elsedmPos=0endifif lr>hr thendmNeg=max(lr,0)elsedmNeg=0endifsTR = (sTR[1] - sTR[1]) / adxLen + trsDMPos = (sDMPos[1] - sDMPos[1]) / adxLen + dmPossDMNeg = (sDMNeg[1] - sDMNeg[1]) / adxLen + dmNegDIP = sDMPos / sTR * 100DIN = sDMNeg / sTR * 100DX = abs(DIP - DIN) / (DIP + DIN) * 100aadx = average[adxLen](DX)// Heiken-Ashiif barindex<2 thenxClose = closexOpen = openelsexClose = TotalPricexOpen = (xOpen[1] + close[1]) / 2endifxHigh = max(high, max(xOpen, xClose))xLow = min(low, min(xOpen, xClose))// Trailing ATRv1 = abs(xHigh - xClose[1])v2 = abs(xLow - xClose[1])v3 = xHigh - xLowtrueRange = max(v1, max(v2, v3))if useHeiken thenatr = WilderAverage[atrLen](trueRange)elseatr = AverageTrueRange[atrLen]endifif aadx>aadx[1] and (adx < adxThresh or not aboveThresh) thenm=m1elsif aadx<aadx[1] or (adx > adxThresh and aboveThresh) thenm=m2elsem = m[1]endifif DIP >= DIN thenmUp=melsemUp=m2endifif DIN >= DIP thenmDn=melsemDn=m2endifif useHeiken thensrc=xClosec=Xcloset=(xHigh+xLow)/2elsesrc=sourcec=closet=MedianPriceendifup = t - mUp * atrdn = t + mDn * atrif max(src[1], c[1]) > TUp[1] thenTUp = max(up,TUp[1])elseTUp = upendifif min(src[1], c[1]) < TDown[1] thenTDown = min(dn, TDown[1])elseTDown = dnendif//trendif min(src,min(c,close))>TDown[1] thentrend=1elsif max(src,max(c,close))<TUp[1] thentrend=-1elsetrend=trend[1]endifif trend=1 thensstop=TUpr=0g=255elsesstop=TDownr=255g=0endifif trend<>trend[1] thendrawtext("•",barindex,sstop,Dialog,Standard,30) coloured(r,g,0)endifreturn sstop coloured(r,g,0) style(line,2)07/31/2018 at 4:45 PM #77203Togli le righe da 133 fino in fondo e poi togli le variabili che ti verranno segnalate come INUTILUZZATE, dovrebbero essere R, G e forse TREND, salvo sviste.
A questo punto puoi scrivere:
1IF close > sstop then....
sstop è il dato restituito dall’indicatore, quindi devi fare riferimento solo ad esso.
Ovviamente fai attenzione a non usare per le tue variabili uno stesso nome già utilizzato dall’indicatore, quali TN, C oppure T, ecc…
08/01/2018 at 9:15 AM #7724608/06/2018 at 7:34 AM #77605Gentile Roberto, ho provato anche io a utilizzare l’indicatore Adaptive-ATR-ADX-Trend-V2 per realizzare un trading system seguendo le istruzioni da te suggerite a traderwin. Sotto inserisco il codice; io vorrei come risultato un ts che mi faccia stare long quando i prezzi sono sopra lo sstop e short viceversa. Invece il ts fa continui acquisti e vendite e non segue la linea dello sstop. Non riesco a capire se ho sbagliato io la codifica di entrata/uscita o è il ts che lavora in questa modalità per via della sua costruzione intrinseca, con atr, doppio moltiplicatore, heiken ashi etc. etc.. Se mi puoi aiutare immagino che possa aiutare anche altri! Grazie Luciano
Adaptive-ATR-ADX-Trend-V2 Trading system123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140// --- settings fissi//atrLen = 21//m1 = 3.5 //"ATR Multiplier - ADX Rising"//m2 = 1.75 //"ATR Multiplier - ADX Falling"//adxLen = 14//adxThresh = 30 //"ADX Threshold"//aboveThresh = 1 //true, title = "ADX Above Threshold uses ATR Falling Multiplier Even if Rising?")//useHeiken = 1 //(false, title = "Use Heiken-Ashi Bars (Source will be ohlc4)")// --- end of settingsDEFPARAM CUMULATEORDERS = falsesource = MedianPrice// DI-Pos, DI-Neg, ADXhR = high-high[1]lR = -(low-low[1])if hr>lr thendmPos=max(hr,0)elsedmPos=0endifif lr>hr thendmNeg=max(lr,0)elsedmNeg=0endifsTR = (sTR[1] - sTR[1]) / adxLen + trsDMPos = (sDMPos[1] - sDMPos[1]) / adxLen + dmPossDMNeg = (sDMNeg[1] - sDMNeg[1]) / adxLen + dmNegDIP = sDMPos / sTR * 100DIN = sDMNeg / sTR * 100DX = abs(DIP - DIN) / (DIP + DIN) * 100aadx = average[adxLen](DX)// Heiken-Ashiif barindex<2 thenxClose = closexOpen = openelsexClose = TotalPricexOpen = (xOpen[1] + close[1]) / 2endifxHigh = max(high, max(xOpen, xClose))xLow = min(low, min(xOpen, xClose))// Trailing ATRv1 = abs(xHigh - xClose[1])v2 = abs(xLow - xClose[1])v3 = xHigh - xLowtrueRange = max(v1, max(v2, v3))if useHeiken thenatr = WilderAverage[atrLen](trueRange)elseatr = AverageTrueRange[atrLen]endifif aadx>aadx[1] and (adx < adxThresh or not aboveThresh) thenm=m1elsif aadx<aadx[1] or (adx > adxThresh and aboveThresh) thenm=m2elsem = m[1]endifif DIP >= DIN thenmUp=melsemUp=m2endifif DIN >= DIP thenmDn=melsemDn=m2endifif useHeiken thensrc=xClosec=Xcloset=(xHigh+xLow)/2elsesrc=sourcec=closet=MedianPriceendifup = t - mUp * atrdn = t + mDn * atrif max(src[1], c[1]) > TUp[1] thenTUp = max(up,TUp[1])elseTUp = upendifif min(src[1], c[1]) < TDown[1] thenTDown = min(dn, TDown[1])elseTDown = dnendif//trendif min(src,min(c,close))>TDown[1] thentrend=1elsif max(src,max(c,close))<TUp[1] thentrend=-1elsetrend=trend[1]endifif trend=1 thensstop=TUp//r=0//g=255//elsesstop=TDown//r=255//g=0endifc1 = (close crosses over sstop and close > sstop)c2 = (close crosses under sstop and close < sstop)IF NOT LONGONMARKET AND c1 THENBUY 50 shares AT MARKETEndifIF NOT SHORTONMARKET AND c2 THENSELLSHORT 50 shares AT MARKETendif08/06/2018 at 9:08 AM #77609Perché alla riga 124 hai messo il commento ad ELSE, prova a toglierlo.
08/06/2018 at 9:46 AM #77616Ecco l’errore dov’era, grazie Roberto! Adesso dovrò lavorare con stop loss e trailing stop per il management del trade in quanto le equity line sono molto instabili e non significative su molte azioni. Inoltre va provato anche sui diversi time frame. Grazie
-
AuthorPosts
Find exclusive trading pro-tools on