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

 
skyjet:
Buonasera, potreste dirmi se ho implementato correttamente la funzione start() di un indicatore in un EA? La compilazione non è d'accordo!


Beh, così tanti sette non possono essere sbagliati, è un JACK-POT!!!

Ma seriamente, la descrizione del problema è ovviamente incompleta, dovresti andare al Telepath Club. O descrivere in modo più dettagliato ciò che è sbagliato, una lista di errori del compilatore, per esempio.

 
evillive:


Beh, così tanti sette non possono essere sbagliati, è un JACK POINT!!!

Ma seriamente, la descrizione del problema è ovviamente incompleta, dovresti andare al Telepath Club. Oppure descrivi in modo più dettagliato cosa c'è di sbagliato, lista di errori del compilatore per esempio.


All'inizio ho ricevuto questo errore:

'\fine_di_programma' - parentesi finale '}' prevista C:\Programmi \Alpari \espertixxx.mq4 (305, 1)

Naturalmente ho aggiunto una parentesi, dopo di che :

'Ind_Start' - funzione non definita C:\Program Files\Alpari \experts\xxx.mq4 (86, 1)

'{' - punto e virgola previsto C:\Program Files\ Alpari \experts\xxx.mq4 (87, 3)

 
skyjet:
Buona sera, potete dirmi se ho prescritto correttamente la funzione start() di un indicatore nel mio EA? La compilazione non è d'accordo!
int start()
{

int varGet_Indicator_start = funcGet_Indicator_start();

return();
  
}


int funcGet_Indicator_start()

{
77777777777777777777777777777
77777777777777777777777777
777777777777777777777777777777
и чтоб возвращало int!!!
}


dovrebbe essere così d'accordo

 

Aiuto, l'indicatore non funziona. Cosa ho scritto di sbagliato?

//-----
  int i,limit;
  int counted_bars=IndicatorCounted();
  if (counted_bars>0) counted_bars--; 
  limit=Bars-counted_bars;
//-----
   for(i=limit; i>=0; i--)
  {SMMA[i]=iMA(NULL,0,TrixPeriod,0,MODE_SMMA,PRICE_CLOSE,i);}
//-----
  for(i=limit; i>=0; i--)
  {EMAOnArray[i]=iMAOnArray(SMMA,0,TrixPeriod,0,MODE_EMA,i);}
//-----
  for(i=limit; i>=0; i--)
  {SMMAOnArray[i]=iMAOnArray(EMAOnArray,0,TrixPeriod,0,MODE_SMMA,i);}
//-----
  for(i=limit; i>=0; i--)
  {Trix[i]=(SMMAOnArray[i]-SMMAOnArray[i+1])/SMMAOnArray[i];}
//-----
  for(i=limit; i>=0; i--)
  {Signal[i]=iMAOnArray(Trix,0,SignalPeriod,0,MODE_EMA,i);}       
//-----
  for(i=limit; i>=0; i--)
  {Histogram[i]=Trix[i]-Signal[i];}
//-----
 

Per favore, consigliatemi!

Supponiamo che ho diverse posizioni aperte nel terminale e ho bisogno di sapere il prezzo di apertura di uno degli ordini, diciamo BUY, conosco anche la magia di ogni ordine?

Come si fa?

 
artem86:

Per favore, consigliatemi!

Supponiamo che ho diverse posizioni aperte nel terminale e ho bisogno di sapere il prezzo di apertura di uno degli ordini, diciamo BUY, conosco anche la magia di ogni ordine?

Come si fa?

//+------------------------------------------------------------------+
//|--------------------// Last Bull Open Price //--------------------|
//+------------------------------------------------------------------+
double LastBullOpenPrice()
{
  double MyLastBullOpenPrice=0;
  for(int Cnt=0;Cnt<OrdersTotal();Cnt++)
  { 
    OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES);
    if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
    {
      MyLastBullOpenPrice=OrderOpenPrice();
    }
  }
  return(MyLastBullOpenPrice);
}

 

Buon pomeriggio!

Potresti per favore dirmi come scrivere:

se ((b1!=0) && (b2==0))

openBuy(Lot,Magic);

se ((b1==0) && (b2!=0))

closeAll();

se ((s1!=0) && (s2==0))

openSell(Lot,Magic);

se ((s1==0) && (s2!=0))

closeAll();

ma gli ordini non si aprono quindi aiutatemi a trovare la ragione

File:
 
ll77012:

Buon pomeriggio!

Potresti per favore dirmi come scrivere:

se ((b1!=0) && (b2==0))

openBuy(Lot,Magic);

se ((b1==0) && (b2!=0))

closeAll();

se ((s1!=0) && (s2==0))

openSell(Lot,Magic);

se ((s1==0) && (s2!=0))

closeAll();

ma gli ordini non si aprono quindi per favore aiutatemi a trovare il motivo


https://book.mql4.com/ru/trading/ordersend

Tutto è molto chiaro e dettagliato.

 
c'è qualcosa che non va nella condizione e non si chiama
 
ll77012:

Buon pomeriggio!

Potresti per favore dirmi come scrivere:

se ((b1!=0) && (b2==0))

openBuy(Lot,Magic);

se ((b1==0) && (b2!=0))

closeAll();

se ((s1!=0) && (s2==0))

openSell(Lot,Magic);

se ((s1==0) && (s2!=0))

closeAll();

ma gli ordini non si aprono quindi aiutatemi a trovare la ragione


indicatore buffer=EMPTY_VALUE; non uguale a 0, ma uguale a 2147483647.
Motivazione: