ordersend() aiuto nella codifica...

 

Ciao ragazzi,

Davvero strano, ma quando eseguo il seguente codice non fa nulla. GetLastError() restituisce 130.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)


Ma se prendiamo lo stesso codice e rimuoviamo le informazioni di stop e target, sputa fuori gli ordini proprio bene.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order #2",16384,0,Green);


Sto usando un modello esperto vuoto e ho solo queste due righe di codice nella funzione di avvio.

Non sono sicuro di quale sia la causa...


Grazie!

 
mugged:

Ciao ragazzi,

Davvero strano, ma quando eseguo il seguente codice non fa nulla. GetLastError() restituisce 130.


Ma se prendiamo lo stesso codice e rimuoviamo le informazioni di stop e target, sputa fuori gli ordini proprio bene.


Sto usando un modello esperto vuoto e ho solo queste due righe di codice nella funzione di avvio.

Non sono sicuro di quale sia la causa...


Grazie!

Che tipo di broker?

simbolo del punto frazionario?

 
diostar:

Che tipo di broker?

simbolo del punto frazionario?


Sto usando un conto IBFX mini.


Lo sto usando su Eur/Usd

 
Anche quando eseguo il codice in strategy tester funziona bene... quando lo eseguo nella vita reale ho dei problemi.
 

Avete sbagliato i vostri calcoli di SL e TP

Se è un acquisto:

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

Se è una vendita:

SL = Ask + StopLoss* Point;

TP = Ask - TakeProfit* Point;

A parte questo, con alcuni broker devi fare OrderSend() senza i livelli di SL e TP poi fare OrderModify() e inserire il TP e SL

 
mugged:

Sto usando un conto IBFX mini.


Lo sto eseguendo su Eur/Usd

Ok.... Scusa se non sono stato specifico.

Prova questo:

(1) a ordersend: sl=tp=0. poi ordermodificare il sl=tp.

(2) eur/usd: quali cifre? 4 o 5?

 
SDC:

Avete sbagliato i vostri calcoli di SL e TP

Se è un acquisto:

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

Se è una vendita:

SL = Ask + StopLoss* Point;

TP = Ask - TakeProfit* Point;


Ehi amico, ho provato a scambiare il "Ask" che ho usato per definire il mio SL e TP con "Bid" come hai suggerito, ma ancora nessuna fortuna.
 

Ok, probabilmente è solo perché devi fare OrderSend() e poi OrderModify()

 
diostar:

Ok.... Scusa se non sono stato specifico.

Prova questo:

(1)al termine dell'ordine: sl=tp=0. poi ordermodificare il sl=tp.

(2) eur/usd: quali cifre? 4 o 5?



1) Sì, questo metodo funziona! C'è un modo per aggirare questo però? Odio il pensiero del caso peggiore in cui l'ordine iniziale entra ma la modifica non avviene (la connessione muore, si verifica un errore, ecc ecc)


2) broker a 5 cifre

 
per un broker a 5 cifre potrebbe essere necessario moltiplicare gli importi SL e TP per dieci, altrimenti TP o stop out a 2,5 pips
 
SDC:
per un broker a 5 cifre potrebbe essere necessario moltiplicare gli importi SL e TP per dieci, altrimenti si TP o stop out a 2,5 pips

Sembra andare bene con il metodo send then modify. Qualche idea su come posso ottenere sia l'ordine che lo stop nello stesso colpo? Preferirei che entrassero insieme in un ambiente di produzione.