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

 

Nell'EA ho usato un conto alla rovescia con una registrazione del tempo sull'evento che si svolge:

if (line1 < 0 && time ==0){time=Time[0];}//сработало предварительное условие входа, записываем время
if (time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара

e se la condizione non è stata attivata

if (line1 == 0){time=0;}

l'indice aumentava ad ogni barra.

Nell'indicatore è necessario mettere una volta una freccia dopo un certo indice.

Ho provato a fare lo stesso nell'indicatore ma non funziona niente:

int tikket;// расположено на глобальном уровне
datetime time;// расположено на глобальном уровне

///////////////////////////////////

for(i=limit1;i>=0;i--)
     {
      if(ExtMapBuffer2[i]<0 && time == 0){time=Time[i];}
      if(time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара
      if(ExtMapBuffer2[i]==0){time=0;tikket=0;}
      if(ExtMapBuffer2[i]<0 && shift>=shet && tikket==0){tikket=1;if(tikket>0)ExtMapBuffer3[i]=High[i]+150*Point;}
     }


Sulla prima barra dove " ExtMapBuffer2[i]<0 " la freccia è messa, e "shift>=shet" non è considerato.

Logicamente, dovremmo fare qualcosa con questa linea " if(time > 0)shift=iBarShift(Symbol(),Period(),time);".

Cosa ne pensate?

 

Cari programmatori, ho bisogno del vostro aiuto.

Ho provato a compilare CloseAllOrders EA, ma ottengo la seguente voce:

------------------------------------------

CloseAllOrders_v5.mq4'
'WinUser32.mqh'
funzione deve restituire un valore CloseAllOrders_v5.mq4 30 22
la funzione deve restituire un valore CloseAllOrders_v5.mq4 79 41
0 error(s), 2 warning(s)

--------------------------------------------------

Cosa devo fare per far funzionare il mio EA?

L'EA è allegato.

Grazie in anticipo per il vostro aiuto.

Saluti,

File:
 
Geowind64:

Cari programmatori, ho bisogno del vostro aiuto.

Ho provato a compilare il CloseAllOrders EA, ma ottengo la seguente voce:

------------------------------------------

'CloseAllOrders_v5.mq4'.
WinUser32.mqh'.
la funzione deve restituire un valore CloseAllOrders_v5.mq4 30 22
la funzione deve restituire un valore CloseAllOrders_v5.mq4 79 41
0 errore(i), 2 avviso(i)

--------------------------------------------------

Cosa devo fare per far funzionare il mio EA?

Expert Advisor allegato.

Grazie in anticipo per il vostro aiuto.

Saluti,


La funzione deve restituire il valore di

if (ret==IDCANCEL)return(0);

и

if (ret1==IDCANCEL)return(0);

Qualcosa del genere.

 

Domanda per voi:

L'Expert Advisor ha un'impostazione che determina su quale candela entrare. L'EA apre un trade sul segnale dell'indicatore, sulla terza candela dopo il segnale. Sulla 2a candela dopo il segnale, c'è un segnale nella direzione opposta. Come scrivo la condizione in modo da non entrare quando c'è un segnale al lato opposto?

extern int sdvig=3;//На какой свече заходим

 double pokupaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,3,sdvig);

 double prodaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,2,sdvig);

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 &&SelBuyDaily==Vhodim1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

Ha risolto il problema usando variabili aggiuntive. Prescriviamo indicatori con il segnale sulla candela corrente. Quando appare il primo segnale assegniamo una cifra alla variabile, quando appare il segnale opposto assegniamo un'altra cifra.

 ////////////////////////////////////////////////////////////////////////////////////////

 //                       Проверка на наличие обратного сигнала                       //

 //////////////////////////////////////////////////////////////////////////////////////

  double pokup=iCustom(Symbol(),Period(),"super-signals-channel",4,500,3,0);

  double prod=iCustom(Symbol(),Period(),"super-signals-channel",4,500,2,0);

 if(pokup>0){

  proverka=1;

  }

 if(prod>0){

  proverka=2;

  }

/////////////////////////////////////////////////////////////////////////////////////////////////////

//                  Блок открытия зделок при отключённых стоп-лосс и тейк-профит                  //

///////////////////////////////////////////////////////////////////////////////////////////////////

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2 && proverka==2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

Ciao, perché l'EA si apre... ...o addirittura apre ordini al di sopra del prezzo? Sto provando l'EA nel tester di strategia in Metatrader.

Apro gli ordini in questo modo:

   RefreshRates();
   switch(send)
      {
      case 1: ticked = OrderSend(Symbol(), OP_BUY, lot, Ask, 4, NormalizeDouble(Bid-SL*Point, Digits), NormalizeDouble(Ask+TP*Point, Digits), "Buy_", magik, 0, clrBlue); break;
      case 2: ticked = OrderSend(Symbol(), OP_SELL, lot, Bid, 4, NormalizeDouble(Ask+SL*Point, Digits), NormalizeDouble(Bid-TP*Point, Digits), "Sell_", magik, 0, clrRed); break;
      default : ticked = 0;
      }



 
nr72:

Ciao, perché l'EA si apre... ...o addirittura apre ordini al di sopra del prezzo? Sto provando l'EA nel tester di strategia in Metatrader.

Apro gli ordini in questo modo:



L'acquisto si apre anche a Ask. Premete F8 sul grafico di visualizzazione, spuntate la casella "Show Ask line" nella scheda "General". Tutte le domande spariranno da sole.
 
artmedia70:
L'acquisto si apre su Ask same. Premete F8 sul grafico di visualizzazione, spuntate la casella "Show Ask line" nella scheda "General". Tutte le domande spariranno da sole.


Grazie! Capito ora...
 
alexey1979621:
Ciao a tutti, non riesco a far attaccare un tacchino gufo, aiuto da persone competenti.
La linea dell'euro (verde) attraversa la linea della sterlina (marrone chiaro) dall'alto verso il basso apre un ordine di vendita per l'euro sterlina. Se la sterlina attraversa la linea dell'euro dal basso verso l'alto, compriamo l'euro sterlina.
Il mio registro dice che non vede l'indicatore.
Allego il consulente e l'indicatore.

Grazie in anticipo.


Non consiglio di decompilare. C'è solo un po' di strada per il bagno.
 

1. Potete dirmi se è possibile far collassare programmaticamente la barra di scambio rapido, che si trova nell'angolo superiore sinistro del grafico?

2. È possibile disabilitare programmaticamente il trading veloce?