TS STRATEGIA 80/20
Forums › ProRealTime forum Italiano › Supporto ProOrder › TS STRATEGIA 80/20
- This topic has 20 replies, 3 voices, and was last updated 3 years ago by robertogozzi.
Tagged: 8020
-
-
02/13/2021 at 5:25 PM #1613161234567891011REM indicatore 80/20linea0 = 0range0sano = range[0]*(0.20)IF open >= (high-range0sano) AND close <= (low+range0sano) THENp8020 = 1ELSIF open <= (low+range0sano) AND close >= (high-range0sano) THENp8020 = -1ELSEp8020 = 0ENDIFReturn p8020 as "80 20", linea0 AS "Linea 0"
ciao Roberto
potresti, per favore, inserire una strategia su questo indicatore?
grazie
02/14/2021 at 12:35 AM #161355Eccola:
Strategia 802012345678910111213141516DEFPARAM CumulateOrders = falserange0sano = range[0]*(0.20)p8020 = 0IF open >= (high-range0sano) AND close <= (low+range0sano) THENp8020 = 1ELSIF open <= (low+range0sano) AND close >= (high-range0sano) THENp8020 = -1ENDIFIF p8020 = 1 AND Not LongOnMarket THENBUY 1 CONTRACT AT MarketENDIFIF p8020 = -1 AND Not ShortOnMarket THENSELLSHORT 1 CONTRACT AT MarketENDIFSET TARGET pPROFIT 200SET STOP pLOSS 1002/24/2021 at 11:49 AM #16251202/25/2021 at 12:02 AM #16256412345678910111213141516171819202122DEFPARAM CumulateOrders = false//Defparam Flatbefore=010000//Defparam Flatafter=220000c1 = ((time >010000 and time <110000) or (time >140000 and time<220000))range0sano = range[0]*(0.20)p8020 = 0IF open >= (high-range0sano) AND close <= (low+range0sano) THENp8020 = 1ELSIF open <= (low+range0sano) AND close >= (high-range0sano) THENp8020 = -1ENDIFIF p8020 = 1 and c1 AND Not LongOnMarket THENBUY 1 CONTRACT AT MarketENDIFIF p8020 = -1 and c1 AND Not ShortOnMarket and c1 THENSELLSHORT 1 CONTRACT AT MarketENDIFSET STOP pLOSS 50SET TARGET pPROFIT 50ho inserito la condizione c1
ma apre e chiude posizioni fuori dalle fasce orarie personalizzate
grazie
02/25/2021 at 12:38 AM #162573Io l’ho povato sul DAX, h1, e funziona correttamente.
Tieni presente:
- che TIME è l’orario di CHIUSURA della candela, non quello che vedi in basso sul grafico (quello è di apertura, cioè OPENTIME)
- tu hai messo > e <, quindi NON quando l’ora è =
se ti risultano ancora entrate errate indicami lo strumento, il TF, la data e l’ora della candela con entrata errata, così posso replicare l’errore.
03/02/2021 at 3:52 PM #162954Ciao Roberto
testato sul DAX h1 su storico k1, e non chiude entro la fascia oraria
il 1 marzo apre long alle 19 e chiude il 2 marzo alle 03 in perdita,
invece doveva chiudere alle 22 del 1 marzo in guadagno
e anche il 22 febbraio apre alle 22 e chiude il 23 alle 03, e anche altre posizioni
ho provato anche con OPENTIME, ma non cambia nulla
Grazie
123456789101112131415161718192021222324DEFPARAM CumulateOrders = false//Defparam Flatbefore=010000//Defparam Flatafter=220000c1 = ((time >=030000 and time =<110000) or (time >=140000 and time =<220000))Trend = supertrend[2.1,10]prezzo=close[0]C2=prezzo>TrendC3=prezzo<Trendrange0sano = range[0]*(0.20)p8020 = 0IF open >= (high-range0sano) AND close <= (low+range0sano) THENp8020 = 1ELSIF open <= (low+range0sano) AND close >= (high-range0sano) THENp8020 = -1ENDIFIF p8020 = 1 and c1 and c2 AND Not LongOnMarket THENBUY 1 CONTRACT AT MarketENDIFIF p8020 = -1 and c1 and c3 AND Not ShortOnMarket THENSELLSHORT 1 CONTRACT AT MarketENDIFSET STOP pLOSS 40SET TARGET pPROFIT 6003/02/2021 at 4:06 PM #162955Non deve chiudere niente se non glielo dici tu!
DEFPARAM FlatAfter=…… CHIUDE lì’operazione, ma se lo togli no!
Gli orari che hai messo alla linea 4 servono a delimitare l’operatività, NON può aprire al di fuori di quella fascia,.
O rimetti DEFPARAM, o gli dici di chiudere quando vuoi, ad esempio per chiudere alle 22 (però se chiudi tutto alle 22 sarebbe bene tu nn consentissi di aprire posizioini fino alle 22, altrimenti le apri e le chiudi subito e quanto meno perdi lo spread):
123IF Time => 220000 AND OnMarket THEN //oppure OpenTime, a tua sceltaSELL AT MarketENDIF03/04/2021 at 5:27 PM #163138Ciao Roberto, mi ricollego a questo topic sulle fascie temporali per chiarire due dubbi. Attualmente uso questa formula (timeframe a 3 minuti):
Defparam Flatbefore=000300 // inizio orario trading
Defparam Flatafter=215700 // fine orario trading
limitHour=time<213000 // limite tempo apertura nuove posizioni
Vorrei impedire al TS di operare durante l’apertura dei mercati americani (diciamo dalle 15:27 alle 16:03) ed uso la funzione time al posto di defparam:
cTime = ((time >=003000 and time =<152700) or (time >=160300 and time =<215700))
La domanda é: 1) posso continuare ad usare anche limitHour come sempre per impedire al TS di aprire nuove posizioni dopo le 21:30, oppure crea confusione dato che usa la funzione time come la usa cTime?
2) Se un operazione è ancora aperta prima delle 15:27 ed uno volesse continuare a mantenerla aperta (ma non aprire nuove posizioni dalle 15:27 alle 16:03) cosa deve scrivere?
GRAZIE
03/04/2021 at 7:35 PM #163145Non ha controindicazioni ad usarlo insiene a cTime.
Non devi fare niente, così come hai indicato te le operazioni ancora aperte le chiude solo alle 215700.
03/04/2021 at 7:42 PM #16314603/04/2021 at 7:54 PM #163148Basta che aggiungi quello che avevo postato, modificando la data ed aggiungendo anche l’uscita Short, se t’interessa:
1234IF Time = 152700 AND OnMarket THEN //oppure OpenTime, a tua sceltaSELL AT MarketSELLSHORT AT MarketENDIF1 user thanked author for this post.
03/05/2021 at 8:40 AM #163169Ciao Roberto, puoi controllare dove è l’errore della seconda formula (quella con cTime che riapre le posizioni dopo l’iorario indicato)?
Questa è corretta:
DEFPARAM Flatbefore = 000300
DEFPARAM Flatafter = 215700
limitHour=time<213000questa con cTime “dovrebbe” essere uguale, ma chiude e riapre le posizioni (vd immagine allegata):
cTime=time>000300 and time<215700
limitHour = time<213000
IF Time = 215700 AND OnMarket THEN //oppure OpenTime, a tua scelta
SELL AT Market
SELLSHORT AT Market
ENDIF03/05/2021 at 8:42 AM #16317103/05/2021 at 10:19 AM #163181Serve il codice, le condizioni sono scritte bene, ma probabilmente usate male
limitHour dov’è e a che serve?
03/05/2021 at 10:39 AM #163185limitHour serve a non far aprire nuove posizioni dopo le 21:30, ed è inserito all’inizio del codice (vd sotto). E’ inserito nella stessa posizione della formula con defparam (quella messa tra parentesi all’inizio del codice) che funziona.
Se riattivo soltanto Defparam flatafter=215700 nella formula con Ctime funziona nuovamente, quindi non capisco in che posizione devo mettere limtHour (e se dipende da questo o dalla cgiusura di cTime)
DEFPARAM CumulateOrders=False
//DEFPARAM Flatbefore = 000300
//DEFPARAM Flatafter = 215700
//limitHour=time<213000cTime=time>000300 and time<215700
limitHour = time<213000
IF Time = 215700 AND OnMarket THEN
SELL AT Market
SELLSHORT AT Market
ENDIF -
AuthorPosts
Find exclusive trading pro-tools on