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

 
-Aleks-:

Ho questo disegno

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;


grazie!!!
 
Ditemi perché dovrei creare un topic se nessuno degli esperti è disposto a leggere i messaggi. Perché ho chiesto aiuto se tutti gli esperti di questo thread se ne fregano di chiunque.
 
vannoo:
Ditemi solo perché devo creare un topic se nessuno degli esperti non vuole nemmeno leggere i messaggi. Non so perché ho chiesto aiuto, se tutti in questo thread se ne fregano di tutti.

Lei ha scritto questo:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Qualsiasi domanda da principiante su MQL4, aiuto e discussione su algoritmi e codici

vannoo, 2017.03.17 15:57

Gente, potete consigliarmi qui cosa ho fatto di sbagliato. Non è così; sto imparando da circa tre settimane a scrivere EAs MQL4 da solo! Ho scritto un EA compilato, nessun errore o avvertimento e tutto sembra a posto. Ho trovato un grande MA che non vuole funzionare. Forse posso chiedere qui dove ho sbagliato e cosa ho fatto di sbagliato. Se qualcuno mi dice cosa fare, fatemelo sapere. Temo che questa sia la mia prima volta qui e come farlo. Anche se capisco come.
Bene, qui è dove possono darvi una risposta.
 
Ciao! Aiuto ... Il mio MT4 è morto ... Ho provato di tutto (riavviare, ripristinare il sistema, eliminare quello vecchio con tutte le viscere, scaricare quello nuovo), niente aiuta. È bloccato ... se lo apri, per chiuderlo devi farlo attraverso Task Manager
 

ciao a tutti

Sono nuovo della programmazione, ma sto cercando di imparare)

Ho un piccolo problema con la chiusura dell'ordine secondo le letture dell'indicatore

Posso capire subito le condizioni di apertura e chiusura di una posizione dalle letture dell'indicatore e chiudere l'ordine nella direzione opposta senza alcuno stop e profitto

se(r > 50 && p > m) //condizioni per l'aperturadi un ordine di acquisto

{

ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //aprire ordine di acquisto

}

Sto scrivendo correttamente la condizione di chiusura dell'ordine?

if(r < 50 && p < m) --- questa è una condizione di vendita e una condizione di chiusura

{

OrderClose(ticketB,0.1,Bid,5,Red);

}

e stampa ilpossibile uso della variabile non inizializzata 'ticketB' e il valore di ritorno di 'OrderClose' dovrebbe essere controllato

Potete dirmi dove ho scritto male?

 

Potete per favore dirmi come fare un ciclo di date - ho bisogno di cercare intervalli - anni e trimestri.

Per esempio il primo intervallo dal 01.01.2010 al 31.12.2010, il secondo dal 01.01.2011 al 31.12.2011 - come organizzarlo nel ciclo?

 

Se non sono stato chiaro prima, ecco un esempio di un disegno che vorrei stringere in qualche modo...


   for(int Ti=0; Ti<18; Ti++)
     {
      if(Ti==0)  {start_time=D'01.01.2000'; stop_time=D'31.12.2000';}
      if(Ti==1)  {start_time=D'01.01.2001'; stop_time=D'31.12.2001';}
      if(Ti==2)  {start_time=D'01.01.2002'; stop_time=D'31.12.2002';}
      if(Ti==3)  {start_time=D'01.01.2003'; stop_time=D'31.12.2003';}
      if(Ti==4)  {start_time=D'01.01.2004'; stop_time=D'31.12.2004';}
      if(Ti==5)  {start_time=D'01.01.2005'; stop_time=D'31.12.2005';}
      if(Ti==6)  {start_time=D'01.01.2006'; stop_time=D'31.12.2006';}
      if(Ti==7)  {start_time=D'01.01.2007'; stop_time=D'31.12.2007';}
      if(Ti==8)  {start_time=D'01.01.2008'; stop_time=D'31.12.2008';}
      if(Ti==9)  {start_time=D'01.01.2009'; stop_time=D'31.12.2009';}
      if(Ti==10) {start_time=D'01.01.2010'; stop_time=D'31.12.2010';}
      if(Ti==11) {start_time=D'01.01.2011'; stop_time=D'31.12.2011';}
      if(Ti==12) {start_time=D'01.01.2012'; stop_time=D'31.12.2012';}
      if(Ti==13) {start_time=D'01.01.2013'; stop_time=D'31.12.2013';}
      if(Ti==14) {start_time=D'01.01.2014'; stop_time=D'31.12.2014';}
      if(Ti==15) {start_time=D'01.01.2015'; stop_time=D'31.12.2015';}
      if(Ti==16) {start_time=D'01.01.2016'; stop_time=D'31.12.2016';}
      if(Ti==17) {start_time=D'01.01.2017'; stop_time=D'31.12.2017';}
    }
 

Voglio cambiare un punto fermo in una linea con una virgola - non funziona - cosa sto facendo di sbagliato?


string str_avrMassSell=DoubleToString(avrMassSell,2);
str_avrMassSell=StringReplace(str_avrMassSell,".",",");
 
-Aleks-:

Se non sono stato chiaro prima, ecco un esempio di una costruzione che vorrei stringere in qualche modo...



Se per anno, potrebbe essere qualcosa del genere

//+------------------------------------------------------------------+
//|                                                    Year_Test.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
 input int      Ti=18;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime start_time=D'01.01.2000';
   datetime stop_time=D'31.12.2000';

   for (int ti=1;ti<Ti;ti++)
   {   
   
   start_time=start_time+31536000;
   if (TimeDay(start_time)==31) start_time+=86400;


   stop_time=stop_time+31536000;

   if (TimeDay(stop_time)==30) stop_time+=86400;

   Print("ti = ", ti, " Start = ", TimeToStr(start_time,TIME_DATE)," Stop = ",TimeToStr(stop_time,TIME_DATE));
   }
   
  }

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 17 Start = 2017.01.01 Stop = 2017.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 16 Start = 2016.01.01 Stop = 2016.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 15 Start = 2015.01.01 Stop = 2015.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 14 Start = 2014.01.01 Stop = 2014.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 13 Start = 2013.01.01 Stop = 2013.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 12 Start = 2012.01.01 Stop = 2012.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 11 Start = 2011.01.01 Stop = 2011.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 10 Start = 2010.01.01 Stop = 2010.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 9 Start = 2009.01.01 Stop = 2009.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 8 Start = 2008.01.01 Stop = 2008.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 7 Start = 2007.01.01 Stop = 2007.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 6 Start = 2006.01.01 Stop = 2006.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 5 Start = 2005.01.01 Stop = 2005.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 4 Start = 2004.01.01 Stop = 2004.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 3 Start = 2003.01.01 Stop = 2003.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 2 Start = 2002.01.01 Stop = 2002.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 1 Start = 2001.01.01 Stop = 2001.12.31


 
-Aleks-:

Voglio cambiare un punto fermo in una linea con una virgola - non funziona - cosa sto facendo di sbagliato?



Funziona

//+------------------------------------------------------------------+
//|                                                StringReplace.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input double   Temp=999.99;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string stemp1=DoubleToStr(Temp,2);
   string stemp2=stemp1;
   StringReplace(stemp2,".",",");
   Print(stemp1," = ", stemp2);
   
  }
//+------------------------------------------------------------------+

2017.03.20 21:39:02.802 StringReplace EURUSD,M15: 999.99 = 999.99


Motivazione: