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

 
Dimka-novitsek:

Ciao di nuovo!

1. Immaginate, dove diavolo è sparito l'ultimo esperto? Ecco cosa è rimasto.

2. È possibile recuperarlo!


Buongiorno!

1. Tu guidi una tale quantità di denaro! È ora che ti procuri una camma indipendente con una linea in-net! IMHO! (Quando non è solo al computer - tale rimozione non è sorprendente, molto probabilmente qualcuno a vapore, ma non importa - il codice è demolito ...) Poi di nuovo, come può essere (senza il fudge) che il codice sia quasi cancellato e il pulsante "Save" sia premuto (floppy disk in alto a sinistra)? Anche se qualcuno ha cancellato qualcosa per fretta, perché salvarlo? Di nuovo, tenete a mente che quando si scrive un programma, è necessario eseguire un salvataggio intermedio, e in questo caso, continuare con loro (caricando la versione finale del salvataggio intermedio (finale - è se il programma è finito).

2. Non si può.

 

Ciao a tutti!

Ho messo a punto il mio primo esperto. Il compito iniziale era quello di mettere la mia idea sotto forma di codice.

Vi chiedo di dare un'occhiata al mio EA e di dare la vostra opinione.

Grazie mille per il tuo aiuto nella scrittura dell'EA!

La logica di Expert Advisor è la seguente:

-Il prezzo sfonda il livello RSI (condizione 1),

-Poi usando un flag soddisfa la seconda condizione (rompere il massimo o il minimo in n barre)

-Ho anche introdotto una funzione per evitare l'apertura di un secondo ordine mentre il primo è aperto.

Ancora una volta, l'obiettivo era quello di scrivere correttamente un EA. Per favore, fate notare i miei errori e le mie carenze.

Vi ringrazio in anticipo.

File:
proboitrsi.mq4  12 kb
 
Grazie!
 
Pacman:

Ciao a tutti!

Ho messo a punto il mio primo esperto. Il compito originale era quello di ottenere la mia idea sotto forma di codice.

...

Ho deciso di curiosare un po' nel tuo codice.

1) Quello che manca è init() e deinit(),

2) Questo:
for(int i=1; i<=OrdersTotal(); i++)
      {
       if(OrderSelect(i-1,SELECT_BY_POS)==true)
         {
          if(OrderSymbol() == Symb)
            {
             if(OrderMagicNumber()==777)
                return;
            }    
         }   
      }

si può fare in questo modo:

if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {   if(OrderSymbol() != Symb) continue;
          if(OrderMagicNumber() != 777) continue;
          return;
      }
   }
}

3) Questo.

Symb=  Symbol();
...
Min_Lot= MarketInfo(Symbol(),MODE_MINLOT);
...
Steep=   MarketInfo(Symbol(),MODE_LOTSTEP);

scrivere in init(), è sufficiente definirli una volta all'inizializzazione, non ad ogni spunta, perché"la chiamata di funzione richiede più tempo del riferimento di variabile".

4) La logica di questo post non mi è chiara

while(true)
...

Quando mentre può essere falso?

Questa è solo una piccola parte che ha attirato direttamente la mia attenzione.

 
paladin80:

Ho deciso di curiosare un po' nel tuo codice.


3) Questi.

messi in init(), è sufficiente definirli una volta all'inizializzazione, non ad ogni spunta, perché "la chiamata di funzione richiede più tempo del riferimento di variabile".


Basta non dimenticare che in init() l'ambiente di mercato non è sempre disponibile
 
Vinin:
Basta non dimenticare che l'ambiente di mercato non è sempre disponibile in init()
Sapete che c'è sempre una soluzione alle "s*** complicate" - il valore giusto si ottiene attraverso un ciclo.
 
TarasBY:
Sapete che c'è sempre una soluzione al "s*** complicato": si ottiene il valore giusto attraverso un ciclo.

Ci sono limiti di tempo per la funzione init()
 

Sera.

L'EA monitora diverse coppie in diversi frame. Come farlo reagire non solo ai tick della coppia/finestra a cui è collegato, ma ai tick di tutte le coppie. Grazie!

int start()

{

doppio MA50 [4][9];

doppio OBarHigh [4][9];

doppio OBarLow [4][9];

for (int t=0; t<=3; t++) // timeframe

{

for (int p=0; p<=8; p++) // coppia

{

MA50[t][p]=iMA(coppia[p],tframe[t],50,0,MODE_EMA,PRICE_CLOSE,0);

OBarHigh [t][p]=iHigh(coppia[p],tframe[t],0);

OBarLow [t][p]=iLow(pair[p],tframe[t],0);

 
imux:

Sera.

L'EA monitora diverse coppie in diversi frame. Come farlo reagire non solo ai tick della coppia/finestra a cui è collegato, ma ai tick di tutte le coppie. Grazie!



Forse un EA in loop aiuterebbe
 
Vinin:

Ci sono dei vincoli di tempo per far funzionare la funzione init()
Estraggo almeno una dozzina di valori dall'ambiente di mercato nel mio EA in init(). Nella fase iniziale c'erano a volte problemi - ora tutto funziona. Questa è la mia esperienza personale - non pretendo di essere una regola. ;)
Motivazione: