Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 158

 
-Aleks-:

Ich habe diesen Entwurf

static datetime TimeN=0;  


void OnTick()
  {

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


Danke!!!
 
Sagen Sie mir, warum ich ein Thema erstellen soll, wenn keiner der Experten bereit ist, die Nachrichten zu lesen. Warum habe ich um Hilfe gebeten, wenn sich alle Experten in diesem Thread einen Dreck um andere scheren?
 
vannoo:
Sagen Sie mir, warum ich ein Thema erstellen muss, wenn keiner der Experten die Nachrichten überhaupt lesen will. Ich weiß nicht, warum ich um Hilfe gebeten habe, wenn sich jeder in diesem Thread einen Dreck um jeden schert.

Sie haben dies geschrieben:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Fragen von Neulingen zu MQL4, Hilfe und Diskussion über Algorithmen und Codes

vannoo, 2017.03.17 15:57

Folks können Sie mich hier beraten, was ich falsch gemacht habe. Nicht so; Ich habe für etwa drei Wochen lernen, MQL4 EAs selbst zu schreiben! Ich habe einen kompilierten EA geschrieben, keine Fehler oder Warnungen und alles scheint in Ordnung zu sein. Ich habe ein großes ABER gefunden, das nicht funktionieren will. Vielleicht kann ich hier fragen, wo ich einen Fehler gemacht habe und was ich falsch gemacht habe. Wenn mir jemand sagt, was ich tun soll, lassen Sie es mich wissen. Ich fürchte, ich bin zum ersten Mal hier und weiß nicht, wie ich es machen soll. Obwohl ich verstehe, wie.
Nun, hier können sie Ihnen eine Antwort geben.
 
Hallo! Hilfe ... Mein MT4 ist tot ... Ich habe alles versucht (Neustart, Wiederherstellung des Systems, Löschen des alten mit allen Eingeweiden, Herunterladen des neuen), nichts hilft. Er ist blockiert ... wenn Sie ihn öffnen, um ihn zu schließen, müssen Sie es über den Task Manager tun
 

Hallo zusammen

Ich bin neu im Programmieren, aber ich versuche zu lernen)

Ich habe ein kleines Problem mit der Schließung der Bestellung nach dem Indikator Lesungen

Ich kann die Bedingungen für das Öffnen und Schließen einer Position anhand der Indikatorwerte sofort erkennen und den Auftrag in der entgegengesetzten Richtung ohne Stopps und Gewinn schließen.

if(r > 50 && p > m) //Bedingungen für die Eröffnungeines Kaufauftrags

{

ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //Kaufauftrag eröffnen

}

Schreibe ich die Bedingung für den Auftragsabschluss richtig?

if(r < 50 && p < m) --- dies ist eine Verkaufsbedingung und eine Schlussbedingung

{

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

}

und druckt diemögliche Verwendung der nicht initialisierten Variablen 'ticketB' und den Rückgabewert von 'OrderClose' sollte geprüft werden

Könnt ihr mir sagen, wo ich es falsch geschrieben habe?

 

Können Sie mir bitte sagen, wie ich einen Zyklus von Daten erstellen kann - ich muss Bereiche suchen - Jahre und Quartale.

Zum Beispiel der erste Bereich vom 01.01.2010 bis zum 31.12.2010, der zweite vom 01.01.2011 bis zum 31.12.2011 - wie soll man das im Zyklus organisieren?

 

Falls ich mich vorhin nicht klar ausgedrückt habe, hier ist ein Beispiel für ein Design, das ich gerne irgendwie festhalten würde...


   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';}
    }
 

Ich möchte einen Punkt in einer Zeile durch ein Komma ersetzen - es funktioniert nicht - was mache ich falsch?


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

Falls ich mich vorhin nicht klar ausgedrückt habe, hier ist ein Beispiel für eine Konstruktion, die ich gerne irgendwie zusammenpressen würde...



Wenn nach Jahr, könnte es etwa so aussehen

//+------------------------------------------------------------------+
//|                                                    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 Jahr_Test EURUSD,M15: Ti = 17 Start = 2017.01.01 Stop = 2017.12.31

2017.03.20 21:24:14.002 Jahr_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 Jahr_Test EURUSD,M15: Ti = 14 Start = 2014.01.01 Stop = 2014.12.31

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

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

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

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

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

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

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

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

2017.03.20 21:24:14.002 Jahr_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 Jahr_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-:

Ich möchte einen Punkt in einer Zeile durch ein Komma ersetzen - es funktioniert nicht - was mache ich falsch?



Es funktioniert

//+------------------------------------------------------------------+
//|                                                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


Grund der Beschwerde: