Prorealtime - formule, indicatori etc... ‎continua....

Dovrebbe essere semplice in effetti. Però dipende dal time frame che usi perché il comando viene letto alla chiusura della barra. Se per ipotesi ti interessa il grafico a 15 minuti devi scrivere:

if time=091500 and close>open then
buy...
elsif time=091500 and close<open then
sellshort...
endif

se invece lavori sul trenta minuti dovrai scrivere 093000 ecc.

ciao Markolino...tf 5 minuti...se prima candela delle 15.30 e' verde allora vai long
poi inseriamo tp...sl...ma se esce solo quella di operazione...
 
Salve a tutti! Sto cercando di creare un TS con Prorealtime ma mi sto fossilizzando su un problema: come faccio a dire al sistema che deve aprirmi UN SOLO ordine al giorno?

Sto davvero sbarellando per sta cosa :wall::wall:
 
Salve a tutti! Sto cercando di creare un TS con Prorealtime ma mi sto fossilizzando su un problema: come faccio a dire al sistema che deve aprirmi UN SOLO ordine al giorno?

Sto davvero sbarellando per sta cosa :wall::wall:

se hai già letto il manuale e non ci sono funzoni "pronte", potresti:
- individuare il nuovo giorno (confronto Date[], IntradayBarIndex o quello che vuoi)
- all'inizio del codice, una nuova variabile: se nuovo giorno then trada = true
- alle condizioni per comprare aggiungi trada, e quando compri: trada = false
 
Ho trovato in rete questo codice di Multicharts per tradare su tf 30M o H1 i pivot points. Ho provato a tradurlo in Pro Real Time H1 immaginando di usarlo per le azioni italiane, apportando qua e là alcune piccole modifiche. Ad esempio :

if MP = 1 Then*sell (“TRL”) next bar at (Lowest(L, 2)[1]) of data2 Stop;
Non sapevo come renderlo perché data2 è riferito al daily e dlow che io sappia deve contenere per forza il numero di barra, quindi non posso mettere lowest[2](dlow). Per cui, anche se non è la stessa cosa, ho messo così:

if longonmarket then
sell at lowest[10](low) stop
endif

Poi: setexitonclose l’ho resto così:
defparam flatafter=170000

La cosa sospetta è che non entra mai short. Se qualcuno può dare un’occhiata al codice e dirmi dove ho sbagliato gliene sarei davvero grato.


Codice Multicharts

Vars: EP(0), MP(0), PivPnt(0), Resistance1(0), Support1(0), NumCont(0);
Input: AdxVal(25), StL(3), StS(3);
If T = Sess1FirstBarTime Then Begin
Value1 = (H data2);
Value2 = (L data2);
Value3 = (C data2);
PivPnt = (Value1 + Value2 + Value3)/3;
Resistance1 = (PivPnt) +avgtruerange(5);
Support1 = (PivPnt) – avgtruerange(5);
End;
MP = MarketPosition;
EP = EntryPrice;
If T > Sess1FirstBarTime and Adx(14) > AdxVal and MP = 0 and T <= 1600 Then Begin
If CloseD(0) < OpenD(0) Then Sellshort (“PVT-S”) next bar*at Support1 +1 Point Stop;
If CloseD(0) > OpenD(0) Then Buy (“PVT-L”) next bar at Resistance1 -1 Point Stop;
End;
{Exit}
If MP = 1 Then*sell (“1TLP”) currentcontracts/2 share next bar at (EP + (Range of data2)) Limit;
If MP = -1 Then*buytocover (“1TSP”) currentcontracts/2 share next bar at (EP – (Range of data2)) Limit;
{Trailing stop}
If MP = 1 Then*sell (“TRL”) next bar at (Lowest(L, 2)[1]) of data2 Stop;
If MP = -1 Then*buytocover (“TRS”) next bar at (Highest(H, 2)[1]) of data2 Stop;
{Stop loss}
If MP = 1 Then ExitLong (“SLL”) next bar at (EP – EP * StL / 100) Stop;
If MP = -1 Then ExitShort (“SLS”) next bar at (EP + EP * StS / 100) Stop;
setexitonclose;




Codice Pro real Time

defparam cumulateorders=false
defparam flatafter=170000
val=round(20000/close)

AdxVal=25
StL=3 //3
StS=3// 3

If time < 094500 Then
Value1 = dhigh(1)
Value2 = dlow(1)
Value3 = dclose(1)
PivPnt = (Value1 + Value2 + Value3)/3
Resistance1 = (PivPnt) +averagetruerange[5]
Support1 = (PivPnt) - averagetruerange[5]
Endif

If Time > 094500 and onmarket =0 and Adx[14] > AdxVal and Time < 160000 then
if dclose(0) < dopen(0) then
Sellshort val shares at (support1-1*ticksize) stop

endif
If dClose(0) > dOpen(0) Then
Buy val shares at Resistance1 +1*ticksize Stop

Endif
endif
// exit

if longonmarket then
sell val/2 shares at (tradeprice+(dhigh(1)-dlow(1))) limit
endif
If shortonmarket Then
exitshort val/2 shares at (tradeprice - (dhigh(1)-dlow(1))) limit
endif
// -Trailing

if longonmarket then
sell at lowest[10](low) stop
endif
If shortonmarket Then
exitshort at highest[10](high) stop
// Stop loss
endif
If longonmarket Then
sell at (tradeprice - tradeprice * StL / 100) Stop
endif
If shortonmarket Then
exitshort at (tradeprice + tradeprice * StS / 100) Stop

endif
 
Ultima modifica:
se hai già letto il manuale e non ci sono funzoni "pronte", potresti:
- individuare il nuovo giorno (confronto Date[], IntradayBarIndex o quello che vuoi)
- all'inizio del codice, una nuova variabile: se nuovo giorno then trada = true
- alle condizioni per comprare aggiungi trada, e quando compri: trada = false

Grazie! Mi hai dato quell'intuizione che mi mancava! Usando la funzione Date faccio il controllo e quando apre una posizione trade diventa false.

Ora però non trovo una funzione che mi indichi il prezzo dello strumento in quel momento, mi spiego: open e close danno il prezzo all'apertura e alla chiusura della barra. Ma se io volessi che ad un certo punto il mio ts mettesse uno stop a break even?
 
Grazie! Mi hai dato quell'intuizione che mi mancava! Usando la funzione Date faccio il controllo e quando apre una posizione trade diventa false.

Ora però non trovo una funzione che mi indichi il prezzo dello strumento in quel momento, mi spiego: open e close danno il prezzo all'apertura e alla chiusura della barra. Ma se io volessi che ad un certo punto il mio ts mettesse uno stop a break even?
Di nulla OK!
non mi è chiaro cosa intendi, se parli di break even dovrebbe andare
Codice:
if longonmarket and ... then
	SELL AT TradePrice STOP
sul manuale dovrebbe esserci
 
Di nulla OK!
non mi è chiaro cosa intendi, se parli di break even dovrebbe andare
Codice:
if longonmarket and ... then
	SELL AT TradePrice STOP
sul manuale dovrebbe esserci

Buongiorno a tutti, vediamo se qualcuno riesce a darmi una dritta...
vorrei dire al sistema questo...

se e' long e la mia posizione e' negativa di n punti compra un altro lotto,
con due posizioni porta il target a pareggio.
insomma accetto la sconfitta:yes:

il problema e' Positionperf considera solo le % non i punti...avete idee in merito?
 
Buongiorno a tutti, vediamo se qualcuno riesce a darmi una dritta...
vorrei dire al sistema questo...

se e' long e la mia posizione e' negativa di n punti compra un altro lotto,
con due posizioni porta il target a pareggio.
insomma accetto la sconfitta:yes:

il problema e' Positionperf considera solo le % non i punti...avete idee in merito?

fatto....
if longonmarket and (Countoflongshares = 1) and (positionperf < 0.002*Tradeprice) then
buy 1 contract at market
endif
 

Allegati

  • Cattura 1.jpg
    Cattura 1.jpg
    141,5 KB · Visite: 105
mi fa storie la seconda entrata se la metto in % entra a c....o di cane vorrei settarla ad n punti...
 
Certo che il manuale è proprio scritto da cani...

Comunque, ho provato a mettere:

Codice:
SET STOP pLOSS 10 STOP pTRAILING 5

Ma mi dice che ProOrder (mannaggia all'anima sua) "Non può inserire più ordini sto combinati"... è secondo voi possibile ovviare a questa cosa?

Ho provato così:
Codice:
IF SHORTONMARKET THEN
IF :censored: = TradePrice THEN
SET STOP pLOSS 20
IF :censored: = TradePrice - 0.05 THEN
SET STOP pLOSS 15
IF :censored: = TradePrice - 0.10 THEN
SET STOP pLOSS 10
IF :censored: = TradePrice - 0.15 THEN
SET STOP pLOSS 5
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF

N.B.: i ":censored:" è perchè non so che funzione indica il prezzo corrente e poi mi sa che non è questa la strada...
 
cari signori non capisco bene come prorealtime consideri i valori tipo...
if positionperf < 1.002 (0,20%)=?
meglio inserire Positionperf < n% oppure
close < n% *tradeprice(o positionprice)
 
ciao e' sul supertrend con dei target...
cmq lascia stare i trailing ci sono stato 3 mesi sopra poi mi hanno detto cge tanto nel conto reale non puoi inserirliKO!

Come non posso inserirli??? :eek:

Comunque, anche io sto lavorando su un T.S. con il Supertrend se vuoi ci si può sentire in pvt
 
ok...

ragazzi dove sta l'errore?
BUY 1 CONTRACT AT prezzo limit
ENDIF
if longonmarket and (Countoflongshares = 1) and (close >= -02*tradeprice) then
buy 1 contract at market
endif
If longonmarket and (Countoflongshares = 2) and (close >= -06*Tradeprice) then
buy 1 contract at market
endif
gli vorrei dire entra,se stai long di 1 entra se stiamo sotto del 0,02%(del prezzo di entrata)
entra ancora se il prezzo mediato va sotto del 0,06%
 
fatto....
if longonmarket and (Countoflongshares = 1) and (positionperf < 0.002*Tradeprice) then
buy 1 contract at market
endif

ok...

ragazzi dove sta l'errore?
BUY 1 CONTRACT AT prezzo limit
ENDIF
if longonmarket and (Countoflongshares = 1) and (close >= -02*tradeprice) then
buy 1 contract at market
endif
If longonmarket and (Countoflongshares = 2) and (close >= -06*Tradeprice) then
buy 1 contract at market
endif
gli vorrei dire entra,se stai long di 1 entra se stiamo sotto del 0,02%(del prezzo di entrata)
entra ancora se il prezzo mediato va sotto del 0,06%


Davvero non voglio sforzarmi di provare a capire come arrivi a scrivere certe cose :D
Per aiutarti a capire (cosa già detta), prova a sostituire le variabili a mano:
(close >= -06*Tradeprice): mettiamo il Dax, Tradeprice = 10600:
close >= -63600
 
Certo che il manuale è proprio scritto da cani...

Ho provato così:
Codice:
IF SHORTONMARKET THEN
IF :censored: = TradePrice THEN
SET STOP pLOSS 20
IF :censored: = TradePrice - 0.05 THEN
SET STOP pLOSS 15
IF :censored: = TradePrice - 0.10 THEN
SET STOP pLOSS 10
IF :censored: = TradePrice - 0.15 THEN
SET STOP pLOSS 5
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF

N.B.: i ":censored:" è perchè non so che funzione indica il prezzo corrente e poi mi sa che non è questa la strada...


Ti consiglierei in questi casi di usare >= o <= (il prezzo esatto potrebbe anche non esser battuto e superato); credo che usando una struttura
Codice:
if ....
elseif ...
elseif ...
endif
dovrebbe accettarlo.
Alla prima cond. vera le altre sono ignorate, quindi occhio sull'ordine in cui metterle;
oppure negli IF setti una_variabile e, infine,
SET STOP pLOSS una_variabile

Il "prezzo corrente" penso proprio sia close, ma Prt in realtime non l'ho mai usato (ti riferisci al realtime?).
Se nel ts (in realtime) metti
GRAPH close as "c"
che fa?
 
Ultima modifica:
Indietro