Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 10.07.14
pako pako ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Code:
//+------------------------------------------------------------------+
//|                                                      Test001.mq4 |
//|                                                              abc |
//|                                                          http:// |
//+------------------------------------------------------------------+

#property copyright "abc"
#property link      "http://"
#property version   "1.00"
#property strict

//--- Externe Variablen (vom Nutzer einstellbar)

extern double  Lots = 0.01;
extern double  SL_in_Pips_bzw_Punkten = 100;
extern double  TP_in_Pips_bzw_Punkten = 100;
extern int     MagicNumber = 12345;


//--- Interne Variablen (nicht vom Nutzer einstellbar)

datetime PeriodenStartZeit;
bool     NeuePeriodeBegonnen;
bool     LongSignal;
bool     ShortSignal;
bool    Time1Flag, Time2Flag;
int      LongOrder;
int      ShortOrder;
string   Time1 = "18:53", Time2 = "19:27";


//+------------------------------------------------------------------+
//| Expert Initialisierungsfunktion                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
      PeriodenStartZeit = Time[0];
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert Deinitialisierungsfunktion                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---   
  }
//+------------------------------------------------------------------+
//| Expert Tick-Funktion                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- Überprüfung, ob neuer Periodenbeginn vorliegt

   if(PeriodenStartZeit != Time[0])
      {
         NeuePeriodeBegonnen = true;
         PeriodenStartZeit = Time[0];
      }
   else NeuePeriodeBegonnen = false;


//--- Handelssignale ermitteln

   //--- Long Signal ermitteln
      if(NeuePeriodeBegonnen == true)
         {
               LongSignal = false;
               if(!Time1Flag && TimeCurrent() >= StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) + Time1))
               {
                  LongSignal = true;
                  Time1Flag = true;  /// und für false EA neu  starten ?????
               }
               if(!Time2Flag && TimeCurrent() >= StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) + Time2))
               {
                  LongSignal = true;
                  Time2Flag = true;   /// und für false EA neu  starten ?????
               }
          }
         
   //--- Short Signal ermitteln
      if(NeuePeriodeBegonnen == true)
         {
               ShortSignal = false;
               if(TimeCurrent() >= StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) + Time1))
               {
                  ShortSignal = true;
               }
          }

//--- Handelssignale umsetzen

   //--- Long Signal umsetzen
      if(LongSignal == true)
         {
            while(LongOrder<=0)
               {
                  LongOrder = OrderSend(Symbol(),OP_BUY,Lots,Ask,50,SL_in_Pips_bzw_Punkten,TP_in_Pips_bzw_Punkten,"Test001",MagicNumber,0,Green);
               }
         }
         
   //--- Short Signal umsetzen
      if(ShortSignal == true)
         {
            while(ShortOrder<=0)
               {
                  ShortOrder = OrderSend(Symbol(),OP_SELL,Lots,Bid,50,SL_in_Pips_bzw_Punkten,TP_in_Pips_bzw_Punkten,"Test001",MagicNumber,0,Red);
               }
         }
  }
//+------------------------------------------------------------------+
Das Time1Flag verhindert, dass die Order bei Erreichen der Zeit mit jeder neuen Kerze wieder geöffnet wird.
Das LongSignal = false; braucht nur einmal gesetzt werden. Entweder die Zeit wurde erreicht, dann wird LongSignal = true; gesetzt, ansonsten bleibt die Variable false! (Verkürzung des Codes!)
Entsprechend für Sell noch coden.

traderdoc
und für das nächste "Time1Flag=false;" EA neu starten ?????