volevo chiedervi, se con Prorealtime si possono creare dei Form dove poter inserire:
Prezzo di Entrata:
Data ora di scadenza
Take Profit1 in Pips
Take Profit2 in Pips
Stop Loss in Pips
Numero di Lotti
Breakeven in Pips
Avviando, apre due ordini pendenti STOP uno con Take Profit1 e uno Take Profit2,
Quando si arriva al take Profit1 il secondo ordine gli verrà spostato lo stop loss al pari dei pips del Take Profit1
morale preso il Take Profit1 se va’ male il risultato è uguale a zero come perdita
ulteriore Trailing stop portando a breakeven
grazie mille
Paolo
Si può provare, il problema è che è tutto basato su ordini pendenti, sia gli orfini iniziali che li SL e i TP e non so se il sistema li accetta, si può provare.
Gli ordini pendenti durano solo per UNA sola barra (quindi non c’è bisogno di cancellarli), dopodiché vanno reimmessi se servono ancora.
Su quale strumento e TF vorresti operare?
Puoi farmi un esempio, sia long che short, con numeri?
Sottostante EURUSD
TimeFrame: 30 minuti
Entrata Long
Numero Lotti: 1
Data Ora di Scadenza: 13/09/2018 17:30
Prezzo Entrata Stop: 1.16350
Stop Loss: 15 pips 1.16200
Take Profit 1: 8 pips 1.16430
Take Profit 2: 40 pips 1.16750
Breakeven: 25 pips 1.16600
alla chiusura del primo lotto prezzo 1.16430
il secondo lotto viene spostato lo stop loss al prezzo: 1.16270
——————————————————————–
Entrata Short
Numero Lotti: 1
Data Ora di Scadenza: 13/09/2018 14:00
Prezzo Entrata Stop: 1.16930
Stop Loss: 18 pips 1.17110
Take Profit 1: 8 pips 1.16850
Take Profit 2: 40 pips 1.16530
Breakeven: 25 pips 1.16680
alla chiusura del primo lotto prezzo 1.16850
il secondo lotto viene spostato lo stop loss al prezzo: 1.17010
Scusami, l’ho notato solo adesso. Per il momento NON è possibile chiudere posizioni parziali in automatico (dovrebbe esserlo entro pochi mesi).
Grazie Roberto
ottima notizia
ulteriori soluzioni:
Potrebbe esser gestita aprendo 2 posizioni, su metatrade funziona così.
oppure
se fosse in grado gestirmi anche solo la seconda posizione take profit2 con trailing stop come descritto sarei ottimamente contento
grazie mille
Paolo
Questo è il template che ho predisposto, adattalo a qualche tua strategia e provalo (io non l’ho testato):
PrezzoEntrata = xxxxx //indicare il prezzo desiderato (può essere una costante tipo CLOSE, oppure un indicatore)
GiornoScadenza = aaaammgg //indicare il giorno di scadenza, nel formato AAAAMMGG
OraScadenza = hhmmss //indicare l'ora di scadenza, nel formato HHMMSS
Lotti = xx //indicare il numero dei lotti (il numero assegnato quando viene lanciata la strategia è prevalente, se inferiore)
Sl = xx //numero di pips di Stop Loss
Tp = xx //numero di pips di Target Profit, può essere anche un moltiplicatore, es.: Tp = Sl * 1.5)
BreakEven = xx * pipsize //numero di pips di profitto raggiunti i quali l'operazione viene portata in pareggio
TradeON = (date <= GiornoScadenza) //TradeON = 1 si può tradare
IF date = GiornoScadenza THEN //TradeON = 0 non si può tradare
IF time > OraScadenza THEN
TradeON = 0
ENDIF
ENDIF
IF MieCondizioni AND close => PrezzoEntrata AND Not OnMarket AND TradeON THEN
BUY/SELLSHORT Lotti CONTRACTS AT MARKET
SET TARGET pPROFIT Tp
SET STOP pLOSS Sl
ENDIF
IF Not OnMarket THEN
PrezzoUscita = 0
ELSIF LongOnMarket THEN //BreakEven per i LONG
IF (TRADEPRICE - close) >= Breakeven THEN
PrezzoUscita = TRADEPRICE //Breakeven
ENDIF
ELSE //BreakEven per gli SHORT
IF (close - TRADEPRICE) >= Breakeven THEN
PrezzoUscita = TRADEPRICE //Breakeven
ENDIF
ENDIF
IF PrezzoUscita THEN
IF LongOnMarket THEN
SELL AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
ELSE
EXITSHORT AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
ENDIF
ENDIF
Ho Apportato qualche modifica
PrezzoEntrata = xxxxx //indicare il prezzo desiderato (può essere una costante tipo CLOSE, oppure un indicatore)
GiornoScadenza = aaaammgg //indicare il giorno di scadenza, nel formato AAAAMMGG
OraScadenza = hhmmss //indicare l’ora di scadenza, nel formato HHMMSS
Lotti = xx //indicare il numero dei lotti (il numero assegnato quando viene lanciata la strategia è prevalente, se inferiore)
Sl = xx //numero di pips di Stop Loss
Tp = xx //numero di pips di Target Profit, può essere anche un moltiplicatore, es.: Tp = Sl * 1.5)
BreakEven = xx * pipsize //numero di pips di profitto raggiunti i quali l’operazione viene portata in pareggio
TradeON = (date <= GiornoScadenza) //TradeON = 1 si può tradare
IF date = GiornoScadenza THEN //TradeON = 0 non si può tradare
IF time > OraScadenza THEN
TradeON = 0
ENDIF
ENDIF
IF close >= PrezzoEntrata AND Not OnMarket AND TradeON THEN
SELLSHORT Lotti CONTRACTS AT PrezzoEntrata STOP
SET TARGET pPROFIT Tp
SET STOP pLOSS Sl
ELSE
BUY Lotti CONTRACTS AT PrezzoEntrata STOP
SET TARGET pPROFIT Tp
SET STOP pLOSS Sl
ENDIF
IF Not OnMarket THEN
PrezzoUscita = 0
ELSIF LongOnMarket THEN //BreakEven per i LONG
IF (TRADEPRICE – close) >= Breakeven THEN
PrezzoUscita = TRADEPRICE //Breakeven
ENDIF
ELSE //BreakEven per gli SHORT
IF (close – TRADEPRICE) >= Breakeven THEN
PrezzoUscita = TRADEPRICE //Breakeven
ENDIF
ENDIF
IF PrezzoUscita THEN
IF LongOnMarket THEN
SELL AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
ELSE
EXITSHORT AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
ENDIF
ENDIF
>> Per chiarezza dei messaggi sul Forum di Prorealcode, separate le parti del vostro codice usando il pulsante per l’inserimento del testo del codice. <<
Grazie.
PrezzoEntrata = xxxxx //indicare il prezzo desiderato (può essere una costante tipo CLOSE, oppure un indicatore)
GiornoScadenza = aaaammgg //indicare il giorno di scadenza, nel formato AAAAMMGG
OraScadenza = hhmmss //indicare l’ora di scadenza, nel formato HHMMSS
Lotti = xx //indicare il numero dei lotti (il numero assegnato quando viene lanciata la strategia è prevalente, se inferiore)
Sl = xx //numero di pips di Stop Loss
Tp = xx //numero di pips di Target Profit, può essere anche un moltiplicatore, es.: Tp = Sl * 1.5)
BreakEven = xx * pipsize //numero di pips di profitto raggiunti i quali l’operazione viene portata in pareggio
TradeON = (date <= GiornoScadenza) //TradeON = 1 si può tradare
IF date = GiornoScadenza THEN //TradeON = 0 non si può tradare
IF time > OraScadenza THEN
TradeON = 0
ENDIF
ENDIF
IF close >= PrezzoEntrata AND Not OnMarket AND TradeON THEN
SELLSHORT Lotti CONTRACTS AT PrezzoEntrata STOP
SET TARGET pPROFIT Tp
SET STOP pLOSS Sl
ELSE
BUY Lotti CONTRACTS AT PrezzoEntrata STOP
SET TARGET pPROFIT Tp
SET STOP pLOSS Sl
ENDIF
IF Not OnMarket THEN
PrezzoUscita = 0
ELSIF LongOnMarket THEN //BreakEven per i LONG
IF (TRADEPRICE – close) >= Breakeven THEN
PrezzoUscita = TRADEPRICE //Breakeven
ENDIF
ELSE //BreakEven per gli SHORT
IF (close – TRADEPRICE) >= Breakeven THEN
PrezzoUscita = TRADEPRICE //Breakeven
ENDIF
ENDIF
IF PrezzoUscita THEN
IF LongOnMarket THEN
SELL AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
ELSE
EXITSHORT AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
ENDIF
ENDIF
Scusa ho pubblicato prima di inserire la domanda.
la domanda è questa, OK ordine scade in una determinata ora e data, è possibile limitare ad una sola esecuzione.
altrimenti dopo l’esecuzione in profitto o in perdita riparte immediatamente l’ordine, nella mia strategia non dovrebbe avvenire
grazie mille
Aggiungi all’inizio, diciamo come prima riga:
ONCE Attivo = 1 //1=attivo 0=inattivo
IF IntraDayBarIndex = 0 THEN
Attivo = 1
ENDIF
Poi le linee tra 14 e 22 racchiudele in questo blocco IF…END IF:
IF Attivo THEN
.
. // qui metti le righe 14-22
.
Attivo = 0
ENDIF
Grazie mille il robot funziona benissimo, con alcune mie ulteriori modifiche.
-Volevo fare una domanda, è possibile calcolare lo spread per poi usarlo sul mio robot?
Buon Lavoro
Paolo
Non è possibile farlo in reale.
Forse si può fare in backtest, devo guardare un attimo e ti so dire.
Puoi lanciare questo in ProBackTest, sul TF 1 secondo, per vedere la differenza tra acquisto e vendita, però nel frattempo è passato 1 secondo, non credo faccia molta differenza:
defparam cumulateorders=false
a = tradeprice(1)
b = tradeprice(2)
c = a - b
SELL AT MARKET
BUY AT MARKET
graph a
graph b
graph c