AIUTO SU TS
Forums › ProRealTime forum Italiano › Supporto ProOrder › AIUTO SU TS
- This topic has 35 replies, 2 voices, and was last updated 6 years ago by robertogozzi.
-
-
12/15/2017 at 3:00 PM #557371234567891011121314151617181920212223242526// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 080000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 210000// Condizioni per entrare su posizioni longindicator1 = ExponentialAverage[45](close)c1 = (close CROSSES OVER indicator1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Condizioni per entrare su posizioni shortindicator2 = ExponentialAverage[45](close)c2 = (close CROSSES UNDER indicator2)IF c2 THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Stop e targetSET STOP pLOSS 10SET TARGET pPROFIT 20
Salve, ho il seguente Ts.
Come faccio ad implementare a questo codice una funzione di ingresso long o ingresso short che sia la seguente:
Acquista quando il prezzo supera al rialzo la media esponenziale a 45, ma quando il volume ha superato un valore n nella seguente o max precedenti 5 barre?
Grazie anticipate
12/15/2017 at 3:17 PM #55741Non può esistere la condizione “nella (barra) seguente”, il futuro non può essere esaminato.
Devi, invece, verificare che ci siano le condizioni nella barra precedente. Quindi le righe 12 e 20 devono diventare
1IF c1[1] THEN1IF c2[1] THEN12/15/2017 at 3:22 PM #55742In totale, per i volumi, vuoi verificare 7 barre?, quella dove avviene il crossing + la successiva + le 5 precedenti?
12/15/2017 at 3:41 PM #5574812/15/2017 at 3:54 PM #55752Ok, allora ignora le correzioni che ti ho segnalato sopra.
La riga 12 dovrà essere
1IF c1 AND (summation[6](Vol > 10000) > 0) THEN //indica i valori che preferiscie la riga 20
1IF c2 AND (summation[6](Vol > 10000) > 0) THEN //indica i valori che preferisci1 user thanked author for this post.
12/15/2017 at 4:50 PM #5575812/15/2017 at 4:56 PM #5576112StopLoss = (close - lowest[3](low(1))) * pipsize //Prezzo di chiusura - minimo delle 3 barre precedentiSET STOP pLOSS StopLoss12/15/2017 at 5:03 PM #5576312/15/2017 at 5:18 PM #55764Scusami, per il riferimento ad una barra precedente occorrono le parentesi quadre
1StopLoss = (close - lowest[3](low[1])) * pipsize12/15/2017 at 5:24 PM #55766Roberto, scusami, ma vorrei capire bene il codice.
Quindi io applico uno stop loss che è il minimo delle tre barre precedenti?
Ad esempio. se il minimo assoluto delle tre barre precedenti è di 13.000 e il ts mi apre una posizione long a 13.050, lo stop loss sra’ messo a 13.000 giusto?
12/15/2017 at 5:45 PM #55769Si, lui calcola il prezzo del minimo delle tre barre precedenti a quella corrente (se invece vuoi quello delle ultime 3 barre basta che metti[0] invece di [1] tra le quadre di low, oppure le togli del tutto. A questo punto trasforma quel prezzo in pips, facendo la differenza tra il prezzo attuale (13050) ed il minimo (13000) e lo trasforma in 50, che è lo stop loss calcolato.
Ad ogni modo aggiungendo alla fine, solo per il backtest,
1GRAPH StopLosspotresti vedere il valore che ha la variabile StopLoss.
12/15/2017 at 7:49 PM #55774perfetto grazie tante 🙂 Funziona 🙂
Roberto inoltre, se io setto uno stop oss a 110 punti su un’operazione long, se a fine giornata quest’operazione long mi rimane aperta come faccio a far alzare lo stop in automatico ad esempio di 30 punti?
12/15/2017 at 8:41 PM #5577512StopLoss = StopLoss + 30 //-30 per gli SHORTSET STOP pLOSS = StopLossAggiungi, o togli se Short, i pips che vuoi e dai nuovamente il comando SET STOP pLOSS con il nuovo valore calcolato.
Se vuoi metterlo a pareggio (breakeven) scrivi
1SET STOP LOSS TRADEPRICE(1)12/18/2017 at 10:23 AM #55937Buongiorno Roberto. Mi spiego meglio.
Se ad esempio il Ts che lavora dalle 14:30 alle 22:00 lunedi’ mi apre un’operazione long e imposta lo stop di 100 pip, Vorrei che alle ore 22:00 se il ts è ancora in posizione, mi alza lo stop di n Pip hce decidero’ io e cosi’ facendo e cioe’ ogni giorno che passa, se il ts e ancora in posizione mi deve alzare lo stop di n pip.
Si puo’ fare?
12/18/2017 at 7:02 PM #56005Buongiorno Roberto. Mi spiego meglio. Se ad esempio il Ts che lavora dalle 14:30 alle 22:00 lunedi’ mi apre un’operazione long e imposta lo stop di 100 pip, Vorrei che alle ore 22:00 se il ts è ancora in posizione, mi alza lo stop di n Pip hce decidero’ io e cosi’ facendo e cioe’ ogni giorno che passa, se il ts e ancora in posizione mi deve alzare lo stop di n pip. Si puo’ fare?
Si, basta che le righe di cui sopra le faccia dipendere da una condizione temporale:
1234IF time = 220000 AND OnMarket THENStopLoss = StopLoss + 30SET STOP pLOSS = StopLossENDIFVolevo avvisarti che mi ero sbagliato nel commentare la riga 1 di cui sopra, perché occorre sempre aggiungere 30 se utilizzi STOP pLOSS, perché vanno indicati i pips di stop, non il prezzo.
Tuttavia se, dopo alcuni giorni, lo StopLoss sarà positivo, n questa istruziuone non andrà bene e dovrai sostituirla con STOP LOSS indicando il prezzo a cui vuoi lo Stop Loss, allora in tal caso devi differenziare, aggiungento se LONG e sottraendo se SHORT, ma in questo caso dovrai usare pipsize per la conversione (anche se, ad esempio, col DAX non ce ne sarebbe bisogno):
1234IF time = 220000 AND OnMarket THENStopLoss = StopLoss + 30 * pipsizeSET STOP LOSS = StopLossENDIF -
AuthorPosts
Find exclusive trading pro-tools on