Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1711

 
Necessità di rimuovere uno degli ordini identici in tempo di apertura, lotto e prezzo di apertura (gli ultimi due), rimuovere forzatamente uno di questi. Grazie.
 
Vitaly Muzichenko #:

La questione è diversa, per emettere i "Parametri di ingresso" nella lingua desiderata.

Esattamente.

È possibile farlo attraverso?

#define  LANG(...)
...
#ifdef
...
#else 
...
#endif 
 
Vitaly Muzichenko #:

La questione è diversa, per emettere i "Parametri di ingresso" nella lingua desiderata.

Solo definendo il linguaggio terminale in fase di compilazione e usando #ifdef -- #else -- #endif per la compilazione condizionale

 
Порт-моне тв tempo aperto, lotto e prezzo aperto (gli ultimi due), rimuovendo forzatamente uno di essi. Grazie.

Pubblica il codice da staffa a staffa

{
.....
ticket = OrderSend(Symbol(),OP_BUY, Lot*3, Ask, Slippage, SLbuy, 0, "открыт ордер на покупку", Magic, 0, Blue);
.....
ticket = OrderSend(Symbol(),OP_SELL, Lot*3, Bid, Slippage, SLsell, 0, "открыт ордер на продажу", Magic, 0, Red);
}
Questa particolare sezione.
 
Artyom Trishkin #:

Solo definendo il linguaggio terminale in fase di compilazione e usando #ifdef -- #else -- #endif per la compilazione condizionale

Questa è una svista in MQL. Purtroppo (
 
Порт-моне тв #:

Sto correndo in un tester. Non ho bisogno di sensitivi quando io stesso sono un telepate. Ed è per questo che so esattamente di cosa ho bisogno. E tu stai sprecando il tuo e il mio tempo con chiacchiere senza senso.

Controlla prima di aprire se c'è una posizione aperta su questa candela (se una posizione per barra), se c'è una posizione aperta su questa candela a questo prezzo (inaffidabile a causa dello slippage), se c'è una posizione aperta un certo numero di secondi fa da questo segnale....

Ci sono molti modi per farlo. Ma nel vostro codice, dovete controllare l'esistenza di una posizione in base a questo segnale. Decidete voi come farlo, dato che non avete un codice.

È a causa della mancanza di codice che tutti tirano a indovinare, cosa che alla fine risulta essere una chiacchiera senza senso.

 
MakarFX #:

Pubblica il codice da staffa a staffa

quella particolare sezione.
   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {

      if(OrderOfSymbol<1)
         if(signal=="buy")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green);
               Print("OpenOrderSuccess");
              }


      if(OrderOfSymbol<1)
         if(signal=="sell")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red);
               Print("OpenOrderSuccess");
              }

     }
 
Порт-моне тв #:
Sono subito confuso da
OrderOfSymbol
come lo definisce?
 
MakarFX #:
Sono subito confuso su come lo definisce?
OrderOfSymbol=CounterOrderTradeType(-1);

............


//+------------------------------------------------------------------+
//| Подсчет ордеров потекущему символу                               |
//+------------------------------------------------------------------+
int CounterOrderTradeType(ENUM_ORDER_TYPE order_type)
  {
   int cnt=0;
//----
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false)
         continue;
      if(OrderSymbol()!=_Symbol)
         continue;
      if(order_type == OrderType() || order_type == -1)
         cnt++;
     }
//----
   return(cnt);
  }

//+------------------------------------------------------------------+
state ancora cercando di trovare l'errore, ma sono ore che vi chiedo di fare qualcos'altro. Perché?
 
Порт-моне тв #:

Prova

   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {
      if(OrderOfSymbol<1)
        {
         if(signal=="buy"&&Close[1]> Open[1])
           {
            if(OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green))
              {Print("OpenOrderSuccess");}
           }
         if(signal=="sell"&&Close[1]> Open[1])
           {
            if(OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red))
              {Print("OpenOrderSuccess");}
           }
        }
     }
È evidenziato in giallo. È normale che sia così?
Motivazione: