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

 
Rewerpool:
Questo è un bel tocco. Rimosso dal codice.

Lo stop ora si contrae ad ogni tick )))))

Aggiungilo.

          double    OOP = OrderOpenPrice(),
                    OSL = OrderStopLoss(),
                    OTP = OrderTakeProfit();
          if ((OSL!=0&&stoploss==0) && (OTP!=0&&takeprofit==0)) continue;
 

Di nuovo buona sera. Il succo della domanda.

Sto mettendo un EA (funzionante) nel mercato. Piattaforma MT4. Posso visualizzare un singolo file. Un file di Expert Advisor. Dovrebbe passare la validità, ma non può perché è un EA senza indicatori. Sono in file separati. L'Expert Advisor lavora con quattro indicatori. Devono essere in qualche modo collegati all'Expert Advisor. Dovete specificare il percorso, cioè scriverli nell'Expert Advisor. Cosa? e dove? Per favore, consigliatemi quale modulo e come farlo.

Da quello che ho capito, dobbiamo usare le "Risorse". Non so come registrarlo correttamente nell'Expert Advisor. Forse conosci altre soluzioni.

Grazie.

Ecco cosa dice quando non supera la validità

 2016.04.01 00:00:00 impossibile aprire il file 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:00 impossibile aprire il file 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2]01 00:00:00 impossibile aprire il file 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00 impossibile aprire il file 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00 impossibile aprire il file 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00 cannot open file 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00 cannot open file 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:00 cannot open file 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:05 impossibile aprire il file 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:05 impossibile aprire il file 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:0504.01 00:00:05 impossibile aprire il file 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:05 impossibile aprire il file 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2]01 00:00:05 impossibile aprire il file 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05 impossibile aprire il file 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05 impossibile aprire il file 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.0101 00:00:05 impossibile aprire il file 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:10 impossibile aprire il file 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:10 impossibile aprire il file 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:10 cannot open file 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:10 cannot open file 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2]

 
Sera, come si fa a fare una scivolata? Ho cercato dappertutto su internet, non ho trovato nulla....
 
Oleksandr Kulibaba:

Di nuovo buona sera. Il succo della domanda.

Sto mettendo un EA (funzionante) nel mercato. Piattaforma MT4. Posso visualizzare un singolo file. Un file di Expert Advisor. Dovrebbe passare la validità, ma non può perché è un EA senza indicatori. Sono in file separati. L'Expert Advisor lavora con quattro indicatori. Devono essere in qualche modo collegati all'Expert Advisor. Dovete specificare il percorso, cioè scriverli nell'Expert Advisor. Cosa? e dove? Per favore, consigliatemi quale modulo e come farlo.

Da quello che ho capito, dobbiamo usare le "Risorse". Non so come registrarlo correttamente nell'Expert Advisor. Forse conosci altre soluzioni.

Grazie.

Ecco cosa dice se la validità non viene superata

Penso che sia triste che tu abbia scritto un EA e non puoi aggiungere indicatori per farlo funzionare.

 
Vladislav Andruschenko:

È triste che tu abbia scritto un EA e non possa aggiungere indicatori per farlo funzionare.

 
Oleksandr Kulibaba:
Ci sto lavorando. Spero che funzioni. La tua risposta non mi ha aiutato per niente. E non sono affatto triste, al contrario sono eccitato. E lo farò.
 
//+------------------------------------------------------------------+
//|                                                        temp1.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int    Slippage=29;

int Slippage1;

int OnInit()
  {
//---
   Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }
//+------------------------------------------------------------------+

Saluti.

Un nuovo tick dovrebbe assegnare il valore del parametro di inputSlippage alla variabileSlippage1,emettereil valore diSlippage1 in un commento e mostrare"Parameters changed"nel log.

Con cosa non funziona: quandoSlippage1!=Slippage, l'opzione"Parametri cambiati" non viene stampata nel log.

Domanda: Cosa sto sbagliando?

 
Andrey Sokolov:

Saluti.

Un nuovo tick dovrebbe assegnare il valore del parametro di inputSlippage alla variabileSlippage1,emettereil valore diSlippage1 in un commento e mostrare"Parameters changed"nel log.

Con cosa non funziona: quandoSlippage1!=Slippage, l'opzione"Parametri cambiati" non viene stampata nel log.

Domanda: Cosa sto sbagliando?

Se un parametro di ingresso viene cambiato, allora alla variabile Slippage1 viene assegnato il valore di Slippag in OnInit.Di conseguenza, non possono essere disuguali.

extern int    Slippage=29;

int Slippage1 = 0;

int OnInit()
  {
//---
   //Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }

 
Alexey Viktorov:

Se il parametro di ingresso è cambiato, la variabile Slippage1 è impostata su Slippag in OnInit.Di conseguenza, non possono essere disuguali.

Sì, grazie. L'ho appena ricevuto.

 

Salve, per favore aiutatemi con l'errore che si verifica nel tester quando cerco di modificare un ordine (trasferimento a Breakeven): ho messo la funzione OrderOpenPrice() al posto di SL, ma il tester mostra errore1 (secondo la documentazione significa che c'è un tentativo di passarevalori invariati come parametri alla funzione). Allego il codice! Grazie in anticipo!

void DeleteOrderFunction2() //funzione che cancella il secondo ordine e imposta il secondo ordine a Breakeven su una certa sera

{

bool flag = false;

se (FlagDeleteSecondOrder2 == true)

{

if(DayOfWeek() == DAYOFWEEK && //se è selezionato un giorno della settimana

Ora() == 22 //se la sera

)

{

if(BuyCount() == 1 && if(c'è un ordine di acquisto aperto

SellStopCount() == 1 //e c'è un ordine di vendita in sospeso

)

{

for( int i = 0; i < OrdersTotal(); i++) //passare gli ordini

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

caso OP_BUY: if(OrderProfit() > 0 &&

Bid > OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color);

bandiera =true;

}

pausa;

caso OP_SELLSTOP: if(flag==true)

{

OrderDeleteX(OrderTicket(), Arrow_Color);

}

pausa;

}

}

}

if(SellCount() == 1 && // se c'è un ordine di vendita aperto

BuyStopCount() == 1 //e c'è un ordine Buy in sospeso

)

{ Stampa("IS!!!!");

for( int i = 0; i < OrdersTotal(); i++) //creare ordini

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

caso OP_SELL: if (OrderProfit() > 0 &&

Ask < OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color);

flag = true;Print("flag =", flag);

}

pausa;

caso OP_BUYSTOP: if(flag == true)

{

Print("flag =", flag);

OrderDeleteX(OrderTicket(), Arrow_Color);

}

pausa;

}

}

}


}


}

}

Motivazione: