Strategia con più entrate nella stessa direzione
Forums › ProRealTime forum Italiano › Supporto ProOrder › Strategia con più entrate nella stessa direzione
- This topic has 26 replies, 2 voices, and was last updated 3 years ago by MauroPro.
-
-
01/14/2021 at 12:02 AM #157733
Senza il codice completo non posso fare verifiche.
01/14/2021 at 8:47 AM #157744Ciao Roberto, ho fatto MOLTE altre prove, ma niente: non riesco ad evitare lo stop and reverse tra i cLong2 e cShort2. (La tua ultima formula, ho ricontrollato bene, è come quelle precedenti, non fa più entrare lo stop and reverse.) Se vuoi a questo punto ti mando il TS che ho semplificato per controllare anche io meglio i segnali. Dimmi se allegare il file o inserirlo con insert prt.
Grazie
01/14/2021 at 9:07 AM #15775001/15/2021 at 5:21 PM #157957Codice per TS con due entrate differenti nella stessa direzione e stop&reverse soltanto su una delle due entrate (da provare)
12345678910111213IF cLong or (cLong2 and CountOfShortShares=0) THENBUY 1 CONTRACTS AT MARKETENDIF//IF longOnMarket and then//SELL 1 CONTRACTS AT MARKET//endifIf cShort or (cShort2 and CountOfLongsShares=0) THENSELLSHORT 1 CONTRACTS AT MARKETENDIF//If shortOnMarket and THEN//EXITSHORT 1 CONTRACTS AT MARKET//ENDIF01/15/2021 at 5:37 PM #15795812345678910111213IF cLong or (cLong2 and CountOfShortShares=0) THENBUY 1 CONTRACTS AT MARKETENDIF//IF longOnMarket and then//SELL 1 CONTRACTS AT MARKET//endifIf cShort or (cShort2 and CountOfLongShares=0) THENSELLSHORT 1 CONTRACTS AT MARKETENDIF//If shortOnMarket and THEN//EXITSHORT 1 CONTRACTS AT MARKET//ENDIF01/15/2021 at 5:54 PM #157960OPer fare lo Stop & Reverse devi cambiare le condizioni di entrata:
123IF cLong or (cLong2 and CountOfLonfgShares=0) THENIf cShort or (cShort2 and CountOfShortShares=0) THEN01/15/2021 at 6:01 PM #157962Quella che hai scritto era la prima formula che avevo provato! Fa sempre lo stop&reverse, tuttavia non lo fa corretto, mentre mettendo, per il long: cLong OR (cLong2 and countOfShortShares=0) dalle prime prove mi sembra che sia corretto.
01/15/2021 at 6:25 PM #157970Necessitano ulteriori contolli, ma logicamente mi sembra corretto: supponiamo di essere short (indifferentemente con cShort o cShort2), abbiamo in ogni caso una posizione short. Come può entrare cLong2 (che non deve entrare, può entrare per lo stop&reverse solo cLong) se per entrare ha bisogno che non ci sia aperto uno short?
(cLong2 and countOfShortShares=o) impedisce di entrare DA una posizione short in quanto il count è <>0. Concordi con il ragionamento?
01/15/2021 at 7:29 PM #157981Se countOfShortShares=o significa che on ci sono operazioni Short aperte, quindi come fa a fare Stop & Reverse? puà solo accumulare posizioni Long (se DEFPARAM CumulateOrders <> FALSE).
01/15/2021 at 9:32 PM #157992Ciao Roberto, ti confermo che scrivere:
12345678IF cLong or cLong2 THENBUY 1 CONTRACTS AT MARKETENDIFIf cShort or cShort2 THENSELLSHORT 1 CONTRACTS AT MARKETENDIFproduce gli stessi identici risultati che scrivere:
12345678IF cLong or (cLong2 and countoflongshares=0) THENBUY 1 CONTRACTS AT MARKETENDIFIf cShort or (cShort2 and countofshortshares=0) THENSELLSHORT 1 CONTRACTS AT MARKETENDIFossia stop and reverse completi, ossia da: cLong o cLong2 sia a cShort che cShort2 (il contrario per lo short)
se invece si vuole lo stop and reverse parziale, ossia SOLO da cLong sia a cShort che cShort2 (il contrario per lo short) occorre scrivere (e da alcune prove limitate sembra funzionare (in ogni caso produce risultati diversi dai primi due che sono identici e riduce, come dovrebbe, il numero delle operazioni (ovvio in quanto vengono presi solo una parte degli stop and reverse, dato che è appunto parziale) occorre scrivere:
12345678IF cLong or (cLong2 and countofshortshares=0) THENBUY 1 CONTRACTS AT MARKETENDIFIf cShort or (cShort2 and countoflongshares=0) THENSELLSHORT 1 CONTRACTS AT MARKETENDIFQuesta è la bozza di TS assemblata con semplici condizioni, facili da verificare, con cui ho fatto delle prove (Nasdaq micro future – 3 minuti). Spero che mi confermi (o comunque risolvi) la cosa almeno abbiamo chiarito
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107DEFPARAM CumulateOrders=False// DATETIME SETTINGDEFPARAM Flatbefore = 020000DEFPARAM Flatafter = 215500limitHour = time<213000//Ctime = (time >=001500 and time<=215500)//------------------------------------------------------------------------------------trailingActivation = (close * 0.7 / 100) / pointsizetrailingDelta = (close * 0.6 / 100) / pointsize// ---------------------------------------------------------------------------------------------------------------OSCILLATORS LIST://-----------------------------------------------------------------------------------------------------------------------myMacd = exponentialaverage[12]-exponentialaverage[32] //MY MACD MauromyMacdSignal = exponentialaverage[52](mymacd)myKama = AdaptiveAverage[20,2,30](mymacd)//-----------------------------------------------------------------------------------------------------------------------------Multiplier = 3 //SUPERTREND INVERSO Roberto GozziPeriods = 10Multiplier = Max(1,Min(999,Multiplier))Periods = Max(1,Min(999,Periods))IF BarIndex > Max(Periods,Multiplier) THENMyATR = AverageTrueRange[Periods](close) * MultiplierBasicUPPER = MedianPrice + MyATRBasicLOWER = MedianPrice - MyATRIF (BasicUPPER < FinalUPPER[1]) OR (close[1] > FinalUPPER[1]) THENFinalUPPER = BasicUPPERENDIFIF (BasicLOWER > FinalLOWER[1]) OR (close[1] < FinalLOWER[1]) THENFinalLOWER = BasicLOWERENDIFIF (ST[1] = FinalUPPER[1]) AND (close <= FinalUPPER) THENST = FinalUPPERSX = FinalLOWERELSEIF (ST[1] = FinalUPPER[1]) AND (close > FinalUPPER) THENST = FinalLOWERSX = FinalUPPERELSEIF (ST[1] = FinalLOWER[1]) AND (close >= FinalLOWER) THENST = FinalLOWERSX = FinalUPPERELSEIF (ST[1] = FinalLOWER[1]) AND (close < FinalLOWER) THENST = FinalUPPERSX = FinalLOWERENDIFENDIFENDIFENDIFENDIF//------------------------------------------------------------- LISTA CONDIZIONI SINGOLEc1=myMacd>myMacdSignalc2=myMacd[5]<myMacdSignal[5]c3=high > stc1A=myMacd>myKamac2A=myMacd[5]<myKama[5]c3A=high > st//--------------------------------------------------------------d1=myMacd<myMacdSignald2=myMacd[5]>myMacdSignal[5]d3=low < std1A=myMacd<myKamad2A=myMacd[5]>myKama[5]d3A=low < st// ------------------------------------------------------------ CONDIZIONI RAGGRUPPATEcLong=c1 and c2 and c3 and limitHourcLong2=c1A and c2A and c3A and limitHourcShort=d1 and d2 and d3 and limitHourcShort2=d1A and d2A and d3A and limitHour// ------------------------------------------------------------ CONDIZIONI ENTRATA - USCITAIF cLong or (cLong2 and countofshortshares=0) THENBUY 1 CONTRACTS AT MARKETENDIFIf cShort or (cShort2 and countoflongshares=0) THENSELLSHORT 1 CONTRACTS AT MARKETENDIF//------------------------------------------------------------- TRAILINGIf not onmarket thenMaxPrice=0MinPrice=closepriceExit=0endifIf longonmarket thenMaxPrice=Max(MaxPrice,high)if MaxPrice-tradeprice(1)>trailingActivation*pointsize thenpriceExit=MaxPrice-trailingDelta*pointsizeendifendifif shortonmarket thenMinPrice=Min(MinPrice,low)if tradeprice(1)-MinPrice>trailingActivation*pointsize thenpriceExit=Minprice+trailingDelta*pointsizeendifendifif onmarket and priceExit>0 thensell at priceExit STOPexitshort at priceExit STOPendif//-------------------------------------------------------------- STOP LOSS e TAKE PROFITSet stop %loss 1Set target %profit 1.2questo problema delle multicondizioni. CIAO
01/16/2021 at 1:34 PM #158063Lo Stop & Reverse lo fa, ovviamente, solo quando sono vere cLong e cShort.
Con cLong2 e cShort2 non può farlo perché si annullano a vicenda, deve essere vera la condizione, ma non deve esserci nessuna operazione contraria! (come fa a fare Stop & Reverse?)
Aggiungi queste righe alla fine del codice ed osserva, nella finestra delle variabili, il valore che hanno candela per candela:
12345678910graph countoflongsharesgraph countofshortsharesgraph cLonggraph cLong2graph cShortgraph cShort2graph (cLong2 and countofshortshares=0)graph (cShort2 and countoflongshares=0)graph shortonmarketgraph countofshortsharesIo l’ho provato su un NASDAQ diverso, perché quello che tu hai indicato IG non me lo trova (su PRT non ho provato perché non ha il trading automatico). Ma questo non ha importanza, è la logica dell’operazione che conta.
1 user thanked author for this post.
01/16/2021 at 1:56 PM #158064Quello che voglio è appunto questo: uno stop & reverse solo con cLong e cShort, con cLong2 e cShort2 non deve farlo (era questo il problema iniziale che volevo risolvere e la formula scritta nel TS di prova sopra funziona).
Provo ad aggiungere come suggerisci i graph per monitorare meglio le condizioni.
Grazie per i suggerimenti.
-
AuthorPosts
Find exclusive trading pro-tools on