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

 

Salve.


Ho visto molte soluzioni per inviare segnali a Telegram attraverso un bot. È possibile fare il contrario? Ricevere i segnali da Telegram per essere eseguiti su MT4? Per favore, mandami il link se c'è qualcosa di simile.

 
sahsa-777:
E una domanda correlata - c'è un modo per attaccare la parabolica alla nuova versione, magari come filtro?

Per favore, mostratemi la nuova versione della parabolica.

 
Il prelievo può essere fatto in funzione?
   prosadka=AccountProfit()*100/AccountBalance()*-1;
   if(prosadka>0) prosadka1=prosadka;
   else prosadka1=0;
 
Qual è l'errore n. 1 quando si modifica un ordine? Nell'aiuto, dice "nessun errore, ma il risultato non è noto". Non riesco a capire cosa dovrei correggere
 
Alexandr Sokolov:
Qual è l'errore n. 1 quando si modifica un ordine? L'aiuto dice "non c'è nessun errore ma il risultato è sconosciuto". Non riesco a capire cosa dovrei correggere

questo errore si verifica se durante la modifica dell'ordine avete inviato al server gli stessi valori dell'ordine, cioè ТР nuovo = ТР set e SL nuovo = SL set

Ricorda che se confronti valori reali non normalizzati sull'uguaglianza, potresti ottenere non proprio il risultato che ti aspettavi ;)

 
Igor Makanu:

questo errore si verifica se durante la modifica dell'ordine avete inviato al server gli stessi valori dell'ordine, cioè TRnova = TRsetted e SLnova = SLsetted

HH: non dimenticare che se confronti valori reali non normalizzati per l'uguaglianza, potresti non ottenere proprio il risultato che ti aspettavi ;)

E se fosse solo uno dei due? O bisogna cambiarli tutti e due insieme?

 
Alexandr Sokolov:

E se fosse solo uno dei due? O bisogna cambiarli tutti e due insieme?

almeno un parametro deve essere cambiato quando si modifica un ordine, errore #1 - se non c'è nulla da cambiare dopo aver inviato una richiesta al server

Stampate quello che avete inviato al server e vedrete subito

 
Igor Makanu:

almeno un parametro deve essere cambiato quando si modifica un ordine, errore #1 - se non c'è nulla da cambiare dopo aver inviato una richiesta al server

disimpegnare ciò che si sta inviando al server, lo si vedrà subito.

Grazie

 

Buon pomeriggio Esperti.

C'è un problema, c'è un indicatore(Envelopes modificato). È inserito in Expert Advisor.

Non posso fare in modo che mostri il rendering.

Ho prescritto i valori per l'indicatore:

//************************************************************************************************/
#property indicator_chart_window
#property  indicator_buffers 4

#property  indicator_color1  Red
#property  indicator_color2  Blue
#property  indicator_color3  Red
#property  indicator_color4  Blue

#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  1
#property  indicator_width4  1

#property  indicator_style1  0
#property  indicator_style2  0
#property  indicator_style3  1
#property  indicator_style4  1

double ExtSell_Buffer[];
double ExtBuy_Buffer[];
double ExtSell_2_Buffer[];
double ExtBuy_2_Buffer[];
//************************************************************************************************/

Ho fatto l'inizializzazione:

//************************************************************************************************/
int OnInit()
{
  //--- drawing settings-----------
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
//--- 
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtSell_Buffer);
   SetIndexShift(0,Ma_Shift);
   SetIndexLabel(0,"Line_Sell");
//--- 
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtBuy_Buffer);
   SetIndexShift(1,Ma_Shift);
   SetIndexLabel(1,"Line_Buy");
   //------------------------------
//--- 
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtSell_2_Buffer);
   SetIndexShift(2,Ma_Shift);
   SetIndexLabel(2,"Line_Sell_2");
//--- 
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtBuy_2_Buffer);
   SetIndexShift(3,Ma_Shift);
   SetIndexLabel(3,"Line_Buy_2");
//------------------------------
   return(INIT_SUCCEEDED);
}
//************************************************************************************************/

Poi cerco di riempire i buffer nel codice:

//************************************************************************************************/
void OnTick()
{
Paint ();
}

//************************************************************************************************/
void Paint()
{
//-----------------------------------------------
int limit; 
int counted_bars=IndicatorCounted(); 
//---- последний посчитанный бар будет пересчитан 
if(counted_bars>0) counted_bars--; 
limit=Bars-counted_bars; 
//---- основной цикл 
for(int i=0; i<limit; i++) 
   { 
      ExtSell_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation, 1, i); 
      ExtBuy_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation, 2, i);

      ExtSell_2_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation_2, 1, i); 
      ExtBuy_2_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation_2, 2, i);
   }
   return;
}
//-----------------------------------------------

La compilazione va senza errori, ma all'avvio dà errore "array out of range" e si ferma (il passaggio dei test si è fermato a causa di un errore critico nell'EA).

Aiuto per riparare ...

p.s. Separatamente Indicatore funziona senza errori.

 
Alexander Layzerevich:

Buon pomeriggio Esperti.

C'è un problema, c'è un indicatore (Envelopes modificato). È inserito in Expert Advisor.

Non posso fare in modo che mostri il disegno.

Gli Expert Advisors non hanno buffer di indicatori e non disegnano nel terminale

leggere nell'aiuto qual è la differenza tra Expert Advisors e script e indicatori