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

 
Igor Makanu:

Se si tratta di aumentare la dimensione del lotto di un nuovo ordine rispetto alla dimensione massima del lotto degli ordini già aperti, allora quando si contano gli ordini, ricordate la dimensione massima del lotto degli ordini

come questo:

Ho contato i lotti. Vorrei che anche il passo aumentasse ad ogni scambio. Per coefficiente

 
Carcass77:

Ho i lotti che contano. Vorrei che il passo aumentasse ad ogni scambio. Per il coefficiente.

Questa è la seconda volta che scrivi del "passo magico" e dobbiamo indovinare qual è il passo! )))

Se stiamo parlando dei prezzi di apertura degli ordini "estremi" e volete piazzare nuovi ordini relativi ai prezzi di apertura di questi ordini, allora il principio è lo stesso, quando ricalcolate gli ordini cercate i prezzi di apertura massimi/minimi per tipo di ordine, più o meno:

int NumberOfOrders(int magic_,double &openpricemaxbuy_,double &openpriceminsell_)
  {
   int i,ot,buy_=0,sell_=0,k=OrdersTotal();
   openpricemaxbuy_=0.0; openpriceminsell_=0.0;
   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         ot=OrderType();
         if((OrderMagicNumber()==magic_) && (OrderSymbol()==_Symbol))
           {
            if(ot==OP_BUY) { buy_++;  openpricemaxbuy_  = fmax(openpricemaxbuy_,OrderOpenPrice());  }
            if(ot==OP_SELL){ sell_++; openpriceminsell_ = fmin(openpriceminsell_,OrderOpenPrice()); }
           }
        }
     }
   return(buy_+sell_);
  }



ZZY: se stiamo parlando di ordini chiusi, il codice sarà diverso, e il principio di enumerazione degli ordini è leggermente diverso - cerca un ordine con il tempo massimo di chiusura e ricorda i suoi parametri

 

Ciao a tutti. Potete dirmi perché la funzione di stampa non funziona nell'indicatore.

//+------------------------------------------------------------------+
//|                                                        test3.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
       Print("Hello");
       Print("---- First indicator -----");

   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Alexander Mikryukov:

Ciao a tutti. Potete dirmi perché la funzione di stampa non funziona nell'indicatore.

non c'è motivo per cui non funzioni, vedi il registro degli esperti per i tuoi messaggi

 
Igor Makanu:

non c'è motivo di non lavorare, guarda nel registro degli esperti i tuoi messaggi

Sì, stupido. Grazie.

 
Buona notte! Potete dirmi se è possibile gestire diversi account con un solo script? Grazie!
 
Maxim Voronin:
Buona notte! Potete dirmi se è possibile gestire diversi account con un solo script? Grazie!

Si può, ma non con un copione, con un consulente. I conti devono essere gestiti in terminali diversi...

 
Vladimir Pastushak:

Si può, ma non con un copione, con un consulente. I conti devono essere gestiti in terminali diversi...

Vai avanti se non ti dispiace
 
Maxim Voronin:
Continua se non ti dispiace

Tu scrivi un EA che può comunicare con altri terminali, le fotocopiatrici sono un esempio per te.

È semplice, una EA trasmette qualcosa e la riceve in un altro terminale...

 

INIT_PARAMETERS_INCORRECT

Progettato per indicare al programmatore un set di parametri di input errato, la stringa di risultato con questo codice di ritorno sarà evidenziata in rosso nella tabella di ottimizzazione generale.

I test non saranno eseguiti per questa serie di parametri dell'Expert Advisor.



Qualcosa non è evidenziato in rosso.

È così per tutti?


questo è il codice in OnInit:
int OnInit()
{

if (Koef2<=Koef) return(INIT_PARAMETERS_INCORRECT); 

return(INIT_SUCCEEDED);


E nel log scrive errori come questo: