Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 212

 
solnce600:

Grazie per il vostro aiuto, vado a prendere dell'ossigeno e poi decifrerò i vostri consigli.

Forse puoi darmi qualche consiglio più specifico, o sistemare un frammento del mio codice.

Allora si fisserà nel mio cervello e non farò gli stessi errori.

Grazie.



Per sistemare qualsiasi parte, dovete scrivere un ToR, siete pronti per questo?
 
ALXIMIKS:

Domanda: Qual è l'ultimo ordine chiuso nella cronologia degli ordini quando OrderSelect è selezionato?

1) Zero "0";

2) L'ultimo "OrderHystoryTotal -1 "

3) Casuale

4) Dipende da quando l'ordine è stato aperto (che è più vicino a 1 o 2 allora?)

Sei assolutamente sicuro di questo, che è così che si trovano gli ordini nella lista? Cosa succede se la storia viene rimescolata in un momento spiacevole e gli ordini in essa cominciano ad essere collocati in modo diverso? Il modo più affidabile è trovare l'estremo per tempo, non per un'ipotetica supposizione nella tua testa...

Una cosa è fare un giocattolo per un tester, un'altra cosa è lavorare nel mondo reale. Che si abitui a prendere in considerazione tutte le possibili insidie che possono accadere "improvvisamente"...

 
ALXIMIKS:

Domanda: Qual è l'ultimo ordine chiuso nella cronologia degli ordini quando OrderSelect è selezionato?


https://www.mql5.com/ru/forum/131859/page4#434227
 
solnce600:

Vi sarei molto grato se poteste spiegare "sulle dita" in relazione al mio esempio.

Dove la mia logica è difettosa. Non capisco di cosa si tratti.

Grazie.



se(la tua_prima_condizione)

{

//ci sarà

// eseguire

// tutti

// questi

// stringhe, solo se

// la tua_prima_condizione è vera

}

// questa linea sarà eseguita in ogni caso



se(la tua_seconda_condizione)

// questa stringa sarà eseguita solo se your_second_condition è vera

// questa stringa verrà eseguita in ogni caso anche se your_first_precondition restituisce false

// questa stringa rimarrà vera anche se your_second_condition restituisce false.


 
Vinin:

Per sistemare qualsiasi parte, dovete scrivere un ToR, siete pronti per questo?
Non ancora.
 
artmedia70:

Sei assolutamente sicuro che è così che gli ordini vengono inseriti nella lista? E se, in un momento spiacevole, la storia si rimescola e i mandati cominciano ad essere disposti diversamente? Il modo più affidabile è trovare l'ultimo per tempo, non per un'ipotetica ipotesi nella tua testa...

Una cosa è fare un giocattolo per un tester, un'altra cosa è lavorare nel mondo reale. Che si abitui a prendere in considerazione tutte le cose possibili che possono accadere "improvvisamente"...


Questa domanda non è del tutto corretta ((

Non ha molto senso passare ogni volta attraverso tutti gli ordini chiusi prima di aprire.

Cosa possiamo fare? Bene, i dati sull'ultimo ordine chiuso dovrebbero essere salvati in un file e aggiornati quando il numero totale di ordini chiusi cambia. (Questo rappresenta già una sorta di economia).

E se ci sono 1000 o 5000 ordini nella storia? La cronologia degli ordini viene mai ripulita o viene sempre ripulita? Se sì, da chi?

Ho chiesto quale parte di OrderSelect conterrà gli ultimi ordini chiusi, dato che aumenta il tempo richiesto per la ricerca quando la storia aumenta,

Vorrei solo restringere la ricerca.

 
digits:

Buon pomeriggio.

La mia strategia tiene conto dello spread, lo spread è definito da una funzione:

Ma poiché lo spread è costante nel tester di strategia, ho bisogno di un emulatore di spread casuale. Voglio emulare i cambiamenti di spread nel tester nell'intervallo da 2 a 3 punti (4 cifre) nell'80% dei casi e più di 3 punti nel 20% dei casi. Forse avete idee su come implementare questo, o link dove questa idea è stata risolta.


Probabilmente nessuno è interessato a questo argomento, ma per il bene della vostra opinione posterò una versione in cui lo spread è solo 2 o 3 pip.

double Spread_(){
   int compare = 0;
   int MaRand = 0;
   double sp = 0.0;
   double spread = 0.0;
     if (IsTesting() == TRUE){
         MathSrand(OrderTicket() + TimeLocal() / Bid);
         MaRand = MathRand();
         MaRand = MaRand % 2;
         if(MaRand == compare){
         sp = 2.0;
         }else{
         sp = 3.0;
       }
       spread = sp;
    }else{
       RefreshRates();
       spread = MathRound((Ask - Bid) / Point);
     }
   return(spread);
}  

 
digits:

Probabilmente nessuno è interessato a questo argomento, ma per il bene della vostra opinione posterò una versione in cui lo spread è solo 2 o 3 punti.


Dovresti cambiare il tuo avatar. Fate qualcosa di neutro. I link sono vietati.
 

Ciao gente, qualcuno può dare una risposta chiara!!! Analisi tecnica+martin

Ho cercato in tutta la rete e non ho trovato una risposta chiara, se qualcuno ha qualche informazione, per favore fatemelo sapere.

 
artmedia70:

se(la tua_prima_condizione)

{

// ci sarà

// eseguire

// tutti

// questi

// stringhe, solo se

// la tua_prima_condizione è vera

}

// questa linea sarà eseguita in ogni caso



se(la tua_seconda_condizione)

// questa stringa sarà eseguita solo se your_second_condition è vera

// questa stringa verrà eseguita in ogni caso anche se your_first_precondition restituisce false

// questa stringa verrà eseguita in ogni caso anche se your_second_condition restituisce false



Se capisco cosa sono la mia prima e la seconda condizione e la stringa che esegue sempre - mi avvicino alla soluzione di questo mistero.

QUESTA È LA PRIMA CONDIZIONE

se ((ot==0))
&&(Offerta==Prezzo)
&&(Open[1]-Close[1]>100*Point&&Open[1]-Close[1]<120*Point)
&&(High[1]-Open[1]>40*Point&&High[1]-Open[1]<60*Point)
&&(Close[1]-Low[1]>40*Point&&Close[1]-Low[1]<60*Point))

QUESTA È LA SECONDA CONDIZIONE

se (isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot))

QUESTA È UNA STRINGA CHE SARÀ SEMPRE ESEGUITA

ritorno(0);

Giusto?

Motivazione: