controllo spread
controllo spread
salve volevo un aiuto per sapere se si può aggiungere in un ea un opzione da poter regolare esternamente per non fare operare l'ea in presenza di forte spreed,e se esiste già qualcosa di scritto o bisogna scriverlo grazie.
E AUGURI.....................
E AUGURI.....................
Re: controllo spread
Potresti semplicemente verificare la differenza Ask - Bid e mettere una if se maggiore/minore della tua soglia che può essere una variabile esterna.
Re: controllo spread
Grazie io però non sono molto pratico di scrittura ci sto provando ad imparare anche se con scarsi risultati ma con la tua dritta proverò a scrivere qualcosa, se mi poi dare ancora o fare qualche esempio mi daresti una mano a scrivere quel if.
grazie.
grazie.
Re: controllo spread
Ho provato con questo if
ma mi da diversi errori in compilazione solo warnings ma sul diarioi,
questo- TestGenerator: unmatched data error (volume limit 4443 at 2020.03.20 19:45 exceeded)
Codice: Seleziona tutto
{
if (Spread >= ("Spread" ));
int tichet = SYMBOL_TRADE_MODE_DISABLED;
}
questo- TestGenerator: unmatched data error (volume limit 4443 at 2020.03.20 19:45 exceeded)
Re: controllo spread
Ciao ho riprovato con questo sempre senza errori ma non mi funziona mi potete aiutare ?
Codice: Seleziona tutto
{
if (Ask-Bid >= Spread ) ;
int tichet = (MODE_SPREAD);
bool res= OrderModify(OrderTicket(),OrderOpenPrice(),SL(OP_BUY),TP(OP_BUY),0,0);
if(!res)
Print("Error in OrderModify. Error code=",GetLastError());
else
Print("Order modified successfully.");
}
Re: controllo spread
il blocco if deve essere tipo questo
oppure cosi
quindi attenzione ai punti e virgola. Nel tuo caso specifico l'if non ha effetto sulla ordermodify, e in generale su nessuna riga perchè hai messo un ; subito dopo la condizione e non esegue nessuna operazione a condizione verificata.
Codice: Seleziona tutto
if ( Condition ) // Header of the operator and condition
Operator;
Codice: Seleziona tutto
if ( Condition ) // Header of the operator and condition
{
Block 1 of operators // If the condition is true, then..
composing body 1 //..the operators composing body 1 are executed
}else // If the condition is false..
{
Block 2 of operators // ..then the operators..
composing body 2 // ..of body 2 are executed
}
Re: controllo spread
ho modificato cosi'
ma anche se non mi da errori in fase di compilazione ,mi da questo errore. EURUSD,M15: OrderModify error 4108
Codice: Seleziona tutto
{
if (Ask-Bid >= Spread )
int tichet = (MODE_SPREAD);
bool spread= OrderModify(OrderTicket(),OrderOpenPrice(),SL(OP_BUY),TP(OP_BUY),0,0);
if(!spread)
Print("Error in OrderModify. Error code=",GetLastError());
else
Print("Order modified successfully.");
}
else
// verifico condizioni per il buy
if((ModeHL == false && Close[ShiftEntrata] <= bb_low) || (ModeHL == true && Low[ShiftEntrata] <= bb_low))
{
int ticket = OrderSend(Symbol(),OP_BUY,Lotti,Ask,0,SL(OP_BUY),TP(OP_BUY),"StudioBandaRevers",MagicNumber,0,Blue);
}
-
- Messaggi: 42
- Iscritto il: 06/07/2015, 15:45
Re: controllo spread
Ciao.
Per poter eseguire la funzione OrderModify, devi aver prima selezionato l’operazione con OrderSelect
Per poter eseguire la funzione OrderModify, devi aver prima selezionato l’operazione con OrderSelect
Chi c’è in linea
Visitano il forum: Nessuno e 0 ospiti