Ich hab mir mal paar Anleitungen angeschaut und mal denn Code verbessert.
Code:
int LongTicket = 0;
extern int StopLoss = 1000;
void OnTick()
{
double StopLossLevel;
StopLossLevel = Bid - StopLoss*Point;
//---
bool Ord = OrderSelect(LongTicket,SELECT_BY_TICKET);
if(OrderCloseTime() != 0 || LongTicket == 0)
{
if(Open[2] < Close[2] && Open[1] < Close[1])
{
LongTicket = OrderSend(Symbol(),OP_BUY,1.0,Ask,0,StopLossLevel,0.0,"Buy Order");
if(LongTicket < 0)
{
Print("Error");
}
else
{
Print(" Ticket # ist: " +string(LongTicket));
}
}
}
//---
double val;
int val_index=iLowest(NULL,0,MODE_LOW,14,4);
if(val_index!=-1) val=Low[val_index];
else PrintFormat("Error in call iLowest. Error code=%d",GetLastError());
Comment("Low ist: ",val_index);
//---
//---
if(Volume[0]==1)
if(LongTicket > 0)
if(StopLossLevel < val_index)
{
bool res=OrderModify(OrderTicket(),OrderOpenPrice(),val_index,0,0,clrAliceBlue);
if(!res)
Print("OrderModify ERROR. ErrorPR: ",GetLastError());
else
{
Print("OrderModify hat funktioniert!");
}
}
Jetzt hab ich nur das Problem ich möchte gerne bei Korrekturen das Stoploss nachziehen aber das kommt bei mir nicht ganz hin mit dem ZIGZAG Indikator geht es irgendwie nicht weil die "value" immer falsch ist jetzt möchte ich es mit iLowest probieren aber das bekomme ich auch nicht so ganz hin was mache ich falsch?