Einzelnen Beitrag anzeigen
  #12 (permalink)  
Alt 04.03.16
TraderBG TraderBG ist offline
Neues Mitglied
 
Registriert seit: Mar 2016
Beiträge: 6
TraderBG befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für die vielen Antworten. Ich habe es manuell im Chart geprüft, ob alle Bedingungen für ein Signal erfüllt waren und ich habe es mit dem Strategietester geprüft, indem ich einfach ein Enddatum in der Zukunft angegeben habe. Da zeigt er auch die Signale, die schon während des laufenden Handelstags erfolgt sind.

Da es sich um ein Strong Buy Signal gehandelt hat und alle Bedingungen erfüllt waren, hätte der MT4 eine Pending Order einfügen müssen!

Hier mein Code:

//Longsignal ermitteln

if(StrongSignalOnly ==true)
{
if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B ,MODE_KIJUNSEN,2)>iIchimoku(Symbol(),0,Tenkan,Kiju n,SenkouSpan_B,MODE_TENKANSEN,2)) &&
(iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MO DE_KIJUNSEN,1)<iIchimoku(Symbol(),0,Tenkan,Kijun,S enkouSpan_B,MODE_TENKANSEN,1)) &&
(iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25 ) &&
(iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANA,1)) &&
(iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANB,1)) &&
(iClose(NULL,0,1)>iClose(NULL,0,Kijun)))
{
LongSignal = true;
}
else LongSignal = false;
}
else if(WeakSignalOnly == true)
{
if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B ,MODE_KIJUNSEN,2)>iIchimoku(Symbol(),0,Tenkan,Kiju n,SenkouSpan_B,MODE_TENKANSEN,2)) &&
(iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MO DE_KIJUNSEN,1)<iIchimoku(Symbol(),0,Tenkan,Kijun,S enkouSpan_B,MODE_TENKANSEN,1)) &&
(iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25 ) &&
(iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANA,1)) &&
(iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANB,1)) &&
(iClose(NULL,0,1)>iClose(NULL,0,Kijun)))
{
LongSignal = true;
}
else LongSignal = false;
}
else if(StrongSignalOnly == false && WeakSignalOnly ==false)
{
if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B ,MODE_KIJUNSEN,2)>iIchimoku(Symbol(),0,Tenkan,Kiju n,SenkouSpan_B,MODE_TENKANSEN,2)) &&
(iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MO DE_KIJUNSEN,1)<iIchimoku(Symbol(),0,Tenkan,Kijun,S enkouSpan_B,MODE_TENKANSEN,1)) &&
(iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25 ) &&
(iClose(NULL,0,1)>iClose(NULL,0,Kijun)))
{
LongSignal = true;
}
else LongSignal = false;
}



//Shortsignal ermitteln
if(StrongSignalOnly ==true)
{
if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B ,MODE_KIJUNSEN,2)<iIchimoku(Symbol(),0,Tenkan,Kiju n,SenkouSpan_B,MODE_TENKANSEN,2)) &&
(iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MO DE_KIJUNSEN,1)>iIchimoku(Symbol(),0,Tenkan,Kijun,S enkouSpan_B,MODE_TENKANSEN,1)) &&
(iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25 ) &&
(iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANA,1)) &&
(iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANB,1)) &&
(iClose(NULL,0,1)<iClose(NULL,0,Kijun)))
{
ShortSignal = true;
}
else ShortSignal = false;
}
else if(WeakSignalOnly ==true)
{
if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B ,MODE_KIJUNSEN,2)<iIchimoku(Symbol(),0,Tenkan,Kiju n,SenkouSpan_B,MODE_TENKANSEN,2)) &&
(iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MO DE_KIJUNSEN,1)>iIchimoku(Symbol(),0,Tenkan,Kijun,S enkouSpan_B,MODE_TENKANSEN,1)) &&
(iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25 ) &&
(iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANA,1)) &&
(iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MOD E_SENKOUSPANB,1)) &&
(iClose(NULL,0,1)<iClose(NULL,0,Kijun)))
{
ShortSignal = true;
}
else ShortSignal = false;
}
else if(StrongSignalOnly == false && WeakSignalOnly ==false)
{
if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B ,MODE_KIJUNSEN,2)<iIchimoku(Symbol(),0,Tenkan,Kiju n,SenkouSpan_B,MODE_TENKANSEN,2)) &&
(iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MO DE_KIJUNSEN,1)>iIchimoku(Symbol(),0,Tenkan,Kijun,S enkouSpan_B,MODE_TENKANSEN,1)) &&
(iADX(NULL,0,Kijun,PRICE_CLOSE,MODE_MAIN,1)>25) &&
(iClose(NULL,0,1)<iClose(NULL,0,Kijun)))
{
ShortSignal = true;
}
else ShortSignal = false;
}

//Ordermanagement
//Überprüfen,ob offene Order vorhanden sind
int OpenOrders = 0;
int AnzahlOrders = OrdersTotal();
int i;

for(i=0;i<AnzahlOrders;i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol())
{
if(OrderMagicNumber()== MagicNumber)
{OpenOrders++;
}
}
}

//Order aufgeben
int ExpirationTime = TimeCurrent()+ ((Period()*60)*3);

//Longorder aufgeben
double LongEntry = iHigh(NULL,0,1) + (SlippageFaktor);


if(OpenOrders == 0 && LongSignal == true && IsNewBar == true && TradingTime ==true)
{
LongTicket = OrderSend(Symbol(),OP_BUYSTOP,Lots,LongEntry,5,0,0 ,"Tenkan Kijun Cross Buy Order opened ",MagicNumber,0,Green);
if(LongTicket<0)
{
Alert("Tenkan Kijun Cross Placing Buy Order failed",Underlying, MagicNumber);
}
else Alert(OrderTicket());
}
// ShortOrder aufgeben
double ShortEntry = iLow(NULL,0,1) - (SlippageFaktor);

if(OpenOrders == 0 && ShortSignal == true && IsNewBar == true && TradingTime == true)
{
ShortTicket = OrderSend(Symbol(),OP_SELLSTOP,Lots,ShortEntry,5,0 ,0,"Tenkan Kijun Cross Sell Order opened ",MagicNumber,0,Red);
if(ShortTicket<0)
{
Alert("Tenkan Kijun Cross Placing Sell Order failed", Underlying, MagicNumber);
}
else Alert(OrderTicket());
}
//SL und TP hinzufügen

double SL = iATR(NULL,0,ADXPeriod,0)*SLFaktor;
double TP =iATR(NULL,0,ADXPeriod,0)*TPFaktor;
double SLShort = NormalizeDouble(OrderOpenPrice() + SL,Digits);
double TPShort = NormalizeDouble(OrderOpenPrice() - TP,Digits);
double SLLong = NormalizeDouble(OrderOpenPrice() - SL,Digits);
double TPLong = NormalizeDouble(OrderOpenPrice() + TP,Digits);

if(OrderSelect(ShortTicket,SELECT_BY_TICKET)== true)
{
if(OrderCloseTime()== 0 && OrderStopLoss()== 0 && OrderTakeProfit()== 0)
{

ShortOrderModified = OrderModify(OrderTicket(),OrderOpenPrice(),SLShort ,TPShort,ExpirationTime);
if(ShortOrderModified ==true)
{
Alert(OrderTicket(),"Short Order modified", "IKH Tenkan Kijun Cross");
}
else Alert("Short Order modification failed","IKH Tenkan Kijun Cross", Underlying, GetLastError());
}
}

if(OrderSelect(LongTicket,SELECT_BY_TICKET)== true)
{
if(OrderCloseTime == 0 && OrderStopLoss() == 0 && OrderTakeProfit() ==0)
{

LongOrderModified = OrderModify(OrderTicket(),OrderOpenPrice(),SLLong, TPLong,ExpirationTime);
if(LongOrderModified ==true)
{
Alert(OrderTicket(),"Long Order modified", "IKH Tenkan Kijun Cross");
}
else Alert("Long Order modification failed", "IKH Tenkan Kijun Cross", Underlying, GetLastError());
}
}

//Tagesgültigkeit der Order
// Scahuen ob Order ausgeführt wurde
for(i=0;i<AnzahlOrders;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderType()== OP_BUY || OrderType()== OP_SELL)
{
ausgefuehrt=True;
}
else ausgefuehrt=False;
}
}
}

//Pending Order am Tagesende löschen


for(i=0;i<AnzahlOrders;i++)
{

if(OpenOrders >0 && TimeHour(TimeCurrent())==EndTradingHour && TimeMinute(TimeCurrent())==EndTradingMinute && ausgefuehrt==False)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber)
{
OrderDelete(OrderTicket(),0);

}
}
}
}
//Ausgeführte Long Order am Tagesende schließen
for(i=0;i<AnzahlOrders;i++)
{

if(OpenOrders >0 && TimeHour(TimeCurrent())==EndTradingHour && TimeMinute(TimeCurrent())==EndTradingMinute && ausgefuehrt==True)
{
if(OrderSelect(LongTicket,SELECT_BY_TICKET,MODE_TR ADES))
{
if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber)
{
OrderClose(LongTicket,OrderLots(),Bid,5);

}
}
}
}
//Ausgeführte Short Order am Tagesende schließen
for(i=0;i<AnzahlOrders;i++)
{

if(OpenOrders >0 && TimeHour(TimeCurrent())==EndTradingHour && TimeMinute(TimeCurrent())==EndTradingMinute && ausgefuehrt==True)
{
if(OrderSelect(ShortTicket,SELECT_BY_TICKET,MODE_T RADES))
{
if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber)
{
OrderClose(ShortTicket,OrderLots(),Ask,5);

}
}
}
}

//Ticketnummern auf 0 zurücksetzen
if(OrderSelect(LongTicket,SELECT_BY_TICKET)==true)
{
if(OrderTicket()>0 && OrderCloseTime()>0) LongTicket =0;
}

if(OrderSelect(ShortTicket,SELECT_BY_TICKET)==true )
{
if(OrderTicket()>0 && OrderCloseTime()>0) ShortTicket =0;
}

}