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

 
Vinin писал(а) >>

L'attraversamento è più facile e veloce da controllare in un altro modo

La velocità è maggiore. Le espressioni logiche complesse richiedono più tempo per essere eseguite rispetto a quelle semplici. La moltiplicazione è più veloce della logica

Grazie Vinin, per quanto riguarda il numero di trade, puoi scrivere che siano solo 1,2...N, dopo aver attraversato la MA.

 
Vinin >>:

Пересечение проще и быстрее проверять по другому

Скорость работы выше. Логические сложные выражение выполняются дольше простых. Умножение быстрее логического

un'altra opzione, ma non credo che l'interrogante la capisca ancora

 
Stanislav.exe писал(а) >>

Grazie Vinin, per quanto riguarda il numero di trade, è possibile scriverli solo 1,2...N, dopo l'incrocio delle MA.

A quanto pare dobbiamo considerare ulteriori condizioni per l'ingresso.

E conta il numero di posizioni aperte.

Ma avrà poca relazione con i crossover.

Perché forse in un caso c'era solo un segnale, nel secondo caso ce n'erano 10.

Ma dovremmo prima determinare le condizioni per un'entrata supplementare.

 
Vinin писал(а) >>

A quanto pare ci sono ulteriori condizioni di ingresso da considerare.

E conta il numero di posizioni aperte.

Ma ha poca relazione con il crossover.

Perché forse in un caso c'era solo un segnale, nel secondo caso - 10.

Ma prima dovremmo definire le condizioni per la voce aggiuntiva

OK, cercherò di guardare più a fondo, molte grazie a Vilin e sanyooooook per l'aiuto.

 

double Lots;
double m = 0.1;


for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}

Perché i miei Lotti risultano sempre pari a zero?

 
Noterday >>:

double Lots;
double m = 0.1;


for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}

Почему у меня Lots всегда оказывается равен нулю?


Il ciclo viene eseguito o viene immediatamente abbandonato dalla condizione?

https://docs.mql4.com/ru/basis/operators/for

L'espressione1 descrive l'inizializzazione del ciclo. L'espressione2 è un controllo della condizione di terminazione del ciclo. Se è vero, il corpo del ciclo for viene eseguito. Tutto si ripete finché l'espressione2 è falsa. Se è falso, il ciclo viene terminato e il controllo viene dato all'operatore successivo. L'espressione3 è calcolata dopo ogni iterazione.
per(espressione1; espressione2; espressione3)
operatore;

 
A quanto pare viene fuori proprio... Mettere un allarme nel ciclo - niente...
 

Buona sera. Ho un problema con il terminale, non riesco a risolverlo in nessun modo:

Carico MT4, carico un modello, disegno linee di tendenza, e quando cambio TF, le linee scompaiono, e non vengono visualizzate neanche sul time frame originale. Allo stesso tempo tutti gli altri grafici ( linee orizzontali, verticali, canali, tutti i Fibos, ecc.) funzionano bene. Su un grafico pulito ("senza template"), il layout è conservato completamente, sugli stessi indulatori tutto funzionava bene prima. Expert Advisors e Expert Advisors sono stati disabilitati. Lavoro principalmente sul grafico, aiutatemi!!!

 

Salve,

Come posso fare in modo che il mio EA non chiuda un trade prima di 3 minuti?

Qualcuno può consigliare cosa e dove prescrivere?

 
Vinin писал(а) >>

Bisogna partire dalla logica. Cosa volevi ottenere e come volevi ottenerlo.

Beh, credo che la logica sia spiegata nei commenti...

Ho tirato fuori i rendimenti ed è andata così:

//попытка сделать функцию: отключение всех  индикаторов и разрешение только Бай или Селл в зависимости от того, 
//что закуплено, когда баланс снижается на заданный процент
//второй вариант:

bool fOffInd(){
int i, b, s;
   if( UT_AutoOf==1){
   //если баланс снизился на LossIndikator процентов
       if( gProfit<=((-1.0)* LossIndikator*AccountBalance())/100.0){
          Print ("Включен автореверс UT_!");
          UT_ON=0; //выключатель индикатора, 0-контроль отключен
          VRF_ON=0;//выключатель индикатора, 0-контроль отключен
     //выбираем открытые ордера Бай       
   for( i=1; i<=OrdersTotal(); i++){        
      if(OrderSelect( i-1, SELECT_BY_POS)==true){   
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol()){ b= b+1;}
          }   
        }
   //выбираем открытые ордера Селл     
   for( i=1; i<=OrdersTotal(); i++){        
      if(OrderSelect( i-1, SELECT_BY_POS)==true){   
           if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){ s= s+1;}
          }   
        }
   //если открытых Бай больше чем Селл, то включаем запрет торговли Бай     
       if( s>= b){ CloseAllBuyNow  = true;
        MaxCount = b;
         Print ("Автореверс. Работаем только Селл!");
          }
       else{
   //если открытых Селл больше чем Селл, то включаем запрет торговли Селл    
       if( b>= s){ CloseAllSellNow = true;
        MaxCount = s;
         Print ("Автореверс. Работаем только Бай!");
             }
           }
           return(false);
         }
       }
       else{
       //все индикаторы должны быть включены и запрет на Бай и Селл снят
          UT_ON=1;
          VRF_ON=1;
          CloseAllBuyNow  = false;
          CloseAllSellNow = false;
    }
   return(0);    
} 
Sembra funzionare, ma non so se il codice è corretto... Se qualcosa è sbagliato, qualcuno può correggerlo?