[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 139

 

Ecco gli indicatori e i modelli, spero di aiutare qualcuno.

http://depositfiles.com/folders/8KVJ9L02I

 

SOS!? Potresti spiegare all'Expert Advisor

i valori dell'indicatore VolumeHist (volumi verticali), cioè determinarli sul grafico

o solo contando? (se lo calcola, ha bisogno di un blocco per analizzare il prezzo di ~budget e calcolare il valore di questo indicatore)

per esempio, un Expert Advisor pensa e il risultato è BUY.LONG

Ho bisogno di trovare un paio di estremo e scegliere il migliore, giusto?

se avete qualche esperienza con questo indicatore nel sistema automatico, condividetela!


 

Salve.

Non riesco a pensare a prima vista se sia possibile:

C'è una funzione - restituisce vero, quando le condizioni sono soddisfatte
Ad esempio, C[0]>C[1]+n*Point (esattamente C[0], da cui la domanda).

Come posso specificare in questa funzione, che anche se la condizione viene eseguita una volta,

condizione, vero restituirà una certa quantità di tempo (X).

Grazie.

 
Telemah >> :

Salve.

Non riesco a pensare a prima vista se questo sia possibile:

C'è una funzione - restituisce vero, quando le condizioni sono soddisfatte
Per esempio C[0]>C[1]+n*Point (esattamente C[0], da cui la domanda).

Come posso specificare in questa funzione, che anche se la condizione viene eseguita una volta,

esecuzione una tantum di una condizione, true restituirà un certo tempo (X).

Grazie.


Non si può. MQL4 non è un OOP. Pertanto, la funzione può restituire solo un valore.

Ma ci sono diverse soluzioni:


1. Invia un array alla funzione per riferimento e memorizza i valori richiesti in esso durante l'esecuzione della funzione, per poterli leggere in seguito.

2. dichiarare variabili statiche, inserire valori in esse durante l'esecuzione della funzione e leggerle dopo

 
Reshetov >> :

Non si può. MQL4 non è un OOP. Perciò la funzione può restituire un solo valore.

Ma ci sono diverse soluzioni:


1. Passare un array per riferimento a una funzione e memorizzare i valori richiesti in esso durante l'esecuzione della funzione, in modo che possano essere letti in seguito.

Dichiarare variabili statiche, inserirvi valori al momento dell'esecuzione della funzione e leggerle dopo

Grazie per la vostra risposta.

 
Signori, consigliare che cosa il problema, è necessario che ogni nuovo apparso in attesa di cancellare il precedente, sembra giusto, ma non funziona come dovrebbe, se c'è un pendente per comprare, poi il pendente per la vendita si rimuove (e viceversa), e se c'è da comprare e c'è un nuovo acquisto (cioè nella stessa direzione) poi non funzionano cheh (con la vendita più vendita la stessa cosa). Non capisco qualcosa, cosa c'è che non va?
bool SELLSTOP; bool BUYSTOP;
  if(...... && BUYSTOP == false)
     {
     int BuyTicketStop = OrderSend(Symbol(),OP_BUYSTOP, Lots, SB,4, SB - StopLoss*Point, SB + TakeProfit*Point,"Покупаем",658932,0,Green);
        if ( BuyTicketStop > 0)
        {
        BUYSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
      }  

  if(....... && SELLSTOP == false)
     {
     int SellTicketStop = OrderSend(Symbol(),OP_SELLSTOP, Lots, SS,4, SS + StopLoss*Point, SS - TakeProfit*Point,"Продаем",658932,0,Red);
        if ( SellTicketStop > 0)
        {
        SELLSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
     }
     
 int M;
 for( M = OrdersTotal() - 1; M >= 0; M--)
     {
     OrderSelect( M, SELECT_BY_POS, MODE_TRADES);
     
          if ( SELLSTOP == true){if(OrderType() == OP_BUYSTOP) 
          {bool ODBS = OrderDelete(OrderTicket());
          if( ODBS){ BUYSTOP = false; PlaySound("ok.wav");}
          else { BUYSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
          
          if ( BUYSTOP == true){if(OrderType() == OP_SELLSTOP) 
          {bool ODSS = OrderDelete(OrderTicket());            
          if( ODSS){ SELLSTOP = false; PlaySound("ok.wav");}
          else { SELLSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
 
 

Buon pomeriggio. Domanda per gli esperti.

Sto ottimizzando con uno spread variabile.

In che modo il tester considera la diffusione durante l'ottimizzazione?

Considera il nuovo spread di corrente in ogni corsa?

O tutte le ottimizzazioni vengono eseguite considerando lo spread memorizzato dal tester prima di premere il pulsante OPTIMIZATION?

 
Rita писал(а) >>

Buon pomeriggio. Domanda per gli esperti.

Sto ottimizzando con uno spread variabile.

In che modo il tester considera la diffusione durante l'ottimizzazione?

Considera il nuovo spread di corrente in ogni corsa?

O tutte le ottimizzazioni sono basate sullo spread memorizzato dal tester prima di premere il pulsante OPTIMIZATION?

Si usa l'ultimo conosciuto?

 
Rita писал(а) >>

Buon pomeriggio. Domanda per gli esperti.

Sto ottimizzando con uno spread variabile.

In che modo il tester considera la diffusione durante l'ottimizzazione?

Considera il nuovo spread di corrente in ogni corsa?

O tutte le ottimizzazioni sono basate sullo spread memorizzato dal tester prima di premere il pulsante OPTIMIZATION?

Si usa l'ultimo conosciuto?

 

Grazie. Ma non è ancora del tutto chiaro.

L'ultimo conosciuto prima di ogni corsa?

O l'ultimo conosciuto prima dell'inizio dell'ottimizzazione?

Motivazione: