if (TotalOrder==0)

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico

Moderatore: Dainesi

Rispondi
gigipax
Messaggi: 17
Iscritto il: 08/08/2017, 18:21

if (TotalOrder==0)

Messaggio da gigipax » 09/09/2017, 11:59

Buongiorno a tutti , ringrazio il cielo l'esistenza di questo forum.

uso questa funzione che mi apre l'ordine solo se il numero degli ordini è uguale a 0 .
Ma se voglio aprire altri ordini durante la posizione aperta con la stessa funzione come posso fare?

perchè se non metto "if (TotalOrder==0)" mi apre ordini all'infinito..
non credo mi sia spiegato bene ma proprio non ci riesco.. spero che qualcuno mi capisca.

se al verificarsi della stessa condizione, ma in un altro momento magari dalla candela successiva, voglio aprire un altra posizione come faccio?


void OnTick()
{
miafunzione();
}

miafunzione(){
if(TotalOrder == 0){..condizione per aprire...... apro posizione ----- }
.................}

Sponsor

Sponsor
 

gigipax
Messaggi: 17
Iscritto il: 08/08/2017, 18:21

Re: if (TotalOrder==0)

Messaggio da gigipax » 09/09/2017, 13:39

ci sono !! solo se riesco a trovare un codice che dica "se la candela ha terminato il suo tempo" come si puo dire? con il codice?

Avatar utente
PlSoft
Messaggi: 120
Iscritto il: 20/12/2015, 21:12
Località: Suzzara

Re: if (TotalOrder==0)

Messaggio da PlSoft » 09/09/2017, 15:30

Ciao
Questo è il codice che ti serve. :)

static datetime g_lastCandleOpenTime;

if(isNewCandle() == true)
{
// la candela adesso è nuova.
}

//+------------------------------------------------------------------+
//| NEW CANDLE |
//+------------------------------------------------------------------+
bool isNewCandle()
{
//TRUE nuova candela
//FALSE vecchia candela

bool v_isNewCandle = false;
//se la candela restituita è la 0 è quella già memorizzata
int v_shift = iBarShift(NULL, 0, g_lastCandleOpenTime, true);

if (v_shift == 0)
v_isNewCandle = false;
else{
v_isNewCandle = true;
//memorizzo l'orario della nuova candela
g_lastCandleOpenTime = Time[0];
}

return (v_isNewCandle);
}

gigipax
Messaggi: 17
Iscritto il: 08/08/2017, 18:21

Re: if (TotalOrder==0)

Messaggio da gigipax » 09/09/2017, 16:34

Ti ringrazio moltissimo amico ..appena ho un po di tempo per ficcare quel codice nel mio codice e vedere i i risultati ti faccio sapere..nel frattempo ti ringrazio tantissimo :)

gigipax
Messaggi: 17
Iscritto il: 08/08/2017, 18:21

Re: if (TotalOrder==0)

Messaggio da gigipax » 09/09/2017, 17:12

Sei un grande Pisoft !!! funziona perfettamente ...anche se non sono migliorati i profitti della mia strategia con questa modifica ..sicuramente mi sarà utile per un altra occasione grazie grazie grazie

Rispondi