Einzelnen Beitrag anzeigen
  #28 (permalink)  
Alt 29.04.16
piptrade piptrade ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Bevor ich die Fragen möglichst präzise beantworte, hier erst noch einmal eine zweite Variante des EA mit Zuordnung des Timers:

//+--- globale externe Variable -----------------------+
extern int MA_lang = 20;
extern int MA_kurz = 5;
extern double HandelsLots = 0.1;
extern double SL_prozent = 0.15;
extern double TP_prozent = 0.1;
extern int MagicNumber = 12345;
//+--- interne Variable -------------------------------+
datetime PeriodenStartZeit;
bool NeuePeriodeBegonnen,LongSignal,ShortSignal;
int LongOrder,ShortOrder,OrderStoppLoss;

//|=== 1. ERGÄNZUNG Timer ===========================================+
extern string TradeTime_1_Begin = "09:30";
extern string TradeTime_1_End = "11:30";
extern string TradeTime_2_Begin = "15:50";
extern string TradeTime_2_End = "17:30";
//+------------------------------------------
datetime Time_1_Begin, Time_1_End;
datetime Time_2_Begin, Time_2_End;
//+------------------------------------------
void init() {
Time_1_Begin = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_1_Begin);
Time_1_End = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_1_End);
Time_2_Begin = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_2_Begin);
Time_2_End = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_2_End);
}
//+------------------------------------------
int CurrentTime;

bool TradingTime() {
CurrentTime = TimeHour(TimeCurrent());
if ((Time_1_Begin < Time_1_End && (CurrentTime < Time_1_Begin || CurrentTime >= Time_1_End)) ||
(Time_2_Begin < End_Time_2 && (CurrentTime < Time_2_Begin || CurrentTime >= Time_2_End)))
return(false);

return(true);
}
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init() {
PeriodenStartZeit = Time[0];
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {

// return(0); // warning: -------> 'void' function returns a value <---------------+
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {

//|=== 2. ERGÄNZUNG Timer ===========================================+
if (TradingTime() == false) return(0);
//|================================================= ============+
//--- Überprüfen, ob neuer Periodenbeginn vorliegt
if(PeriodenStartZeit != Time[0]) {
NeuePeriodeBegonnen = true;
}
else NeuePeriodeBegonnen = false;

//--- Marktdaten ermitteln .........

//--- Handelssignale ermitteln
if(NeuePeriodeBegonnen == true) {
//--- Bedingung für Buy-Signal
if(MAkurz > MAlang && MAkurzVorperiode <= MAlangVorperiode) {
LongSignal = true;
}
else LongSignal = false;
//--- Bedingung für Sell-Signal
if(MAkurz < MAlang && MAkurzVorperiode >= MAlangVorperiode) {
ShortSignal = true;
}
else ShortSignal = false;
}
else {
LongSignal = false;
ShortSignal = false;
}
//+--------------------------------------------------+
//----> Long Signale umsetzen
if (LongSignal == true) .........
//----> Short Signale umsetzen
if (ShortSignal == true) .........

//SL für Long Deals setzen
//SL für Short Deals setzen
//TP für Long Deals setzen
//TP für Short Deals setzen
//+---------------------------------------------------+
//Ticketnummer nach Closing auf 0 zurücksetzen
//+---------------------------------------------------+


Es wäre zu schön, wenn wir in der obigen oder in der hier dargestellten Version eine Timer-Lösung finden würden.
So, jetzt werde ich versuchen, die gestellten Fragen zu verstehen - und so schnell wie möglich zu beantworten.

LG.