Hallo Leute könntet ihr mal drüber schauen weil ich finde den fehler warum er im Strategietester nicht handelt
PHP-Code:
//+------------------------------------------------------------------+
//| Version-002.mq4 |
//| Copyright 2017, MetaQuotes Software Corp. |
//+------------------------------------------------------------------+
#property copyright "N3fa2tus"
#property version "1.00"
#property strict
extern int ADX_Trend = 45;
extern double Lots = 0.01;
extern double SL_prozent = 0.5;
extern double TP_prozent = 0.5;
extern int MagicNumber = 14031983;
extern int LongOrder,ShortOrder;
datetime StartZeit;
bool NeueStartZeit,LongSignal,ShortSignal;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
StartZeit = Time[0];
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if (StartZeit != Time[0])
{
NeueStartZeit = true;
StartZeit = Time[0];
}
else NeueStartZeit = false;
double ADX = iADX (NULL,0,ADX_Trend,0,42,0);
double DMI_Gruen_0 = iADX (NULL,0,ADX_Trend,0,45,0);
double DMI_Gruen_1 = iADX (NULL,0,ADX_Trend,0,45,1);
double DMI_Rot_0 = iADX (NULL,0,ADX_Trend,0,45,0);
double DMI_Rot_1 = iADX (NULL,0,ADX_Trend,0,45,1);
if (NeueStartZeit == true)
{
if((DMI_Gruen_0 > DMI_Rot_0)
&& (DMI_Gruen_1 < DMI_Rot_1))
{
LongSignal = true;
}
else LongSignal = false;
if((DMI_Gruen_0 < DMI_Rot_0)
&& (DMI_Gruen_1 > DMI_Rot_1))
{
ShortSignal = true;
}
else ShortSignal = false;
}
else
{
LongSignal = false;
ShortSignal = false;
}
//+------------------------------------------------------------------+
//| LongOrder |
//+------------------------------------------------------------------+
if(LongSignal == true)
{
if(ShortOrder>0)
{
if(OrderSelect(ShortOrder,SELECT_BY_TICKET) == true);
{
bool ShortOrderClose = OrderClose(ShortOrder,OrderLots(),Ask,10,Blue);
if (ShortOrderClose == true) ShortOrder=0;
}
}
while(LongOrder<=0)
{
LongOrder = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"Kauforder geöffnet",MagicNumber,0,Green);
}
}
//+------------------------------------------------------------------+
//| ShortOrder |
//+------------------------------------------------------------------+
if(ShortSignal == true)
{
if(LongOrder>0)
{
if(OrderSelect(LongOrder,SELECT_BY_TICKET) == true);
{
bool LongOrderClose =OrderClose(LongOrder,OrderLots(),Bid,10,Blue);
if (LongOrderClose == true) LongOrder=0;
}
}
while(LongOrder<=0)
{
LongOrder = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"Verkauforder geöffnet",MagicNumber,0,Red);
}
}
//+------------------------------------------------------------------+
//| SL_prozent |
//+------------------------------------------------------------------+
if(OrderSelect(LongOrder,SELECT_BY_TICKET) == true);
{
if(OrderCloseTime() ==0 && OrderStopLoss() ==0)
{
double StoppLoss = NormalizeDouble (OrderOpenPrice()/(1+(SL_prozent/100)),Digits);
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
}
}
if(OrderSelect(ShortOrder,SELECT_BY_TICKET) == true);
{
if(OrderCloseTime() ==0 && OrderStopLoss() ==0)
{
double StoppLoss = NormalizeDouble (OrderOpenPrice()*(1+(SL_prozent/100)),Digits);
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
}
}
//+------------------------------------------------------------------+
//| TP_prozent |
//+------------------------------------------------------------------+
if(OrderSelect(LongOrder,SELECT_BY_TICKET) == true);
{
if(OrderCloseTime() ==0 && OrderTakeProfit() ==0)
{
double TakeProfit = NormalizeDouble (OrderOpenPrice()*(1+(TP_prozent/100)),Digits);
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit,0,Orange);
}
}
if(OrderSelect(ShortOrder,SELECT_BY_TICKET) == true);
{
if(OrderCloseTime() ==0 && OrderTakeProfit() ==0)
{
double TakeProfit = NormalizeDouble (OrderOpenPrice()/(1+(TP_prozent/100)),Digits);
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit,0,Orange);
}
}
if(OrderSelect(LongOrder,SELECT_BY_TICKET) == true);
{
if(OrderTicket()>0 && OrderCloseTime()>0) LongOrder=0;
}
if(OrderSelect(ShortOrder,SELECT_BY_TICKET) == true);
{
if(OrderTicket()>0 && OrderCloseTime()>0) ShortOrder=0;
}
Comment (
"Kontostand: " ,AccountBalance() ,"\n",
"KontoEquity: " ,AccountEquity()
);
if (DMI_Gruen_0 > 22 && DMI_Gruen_0 < 22)
{
CloseAll();
}
if (DMI_Rot_0 > 22 && DMI_Rot_0 < 22)
{
CloseAll();
}
}
void CloseAll()
{
for (int i=OrdersTotal(); i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS)== true)
if (OrderSymbol() == Symbol())
{
OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red);
OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Green);
}
}
}
//+------------------------------------------------------------------+