code ผมแก้จนทำงานแล้วให้มัน print ออกมาพบว่าเงื่อนไข pc> high ไม่มีทางเป็นจริงได้เลยครับเพราะถ้าราคาปิดของแท่งที่แล้วไม่มีทางมากกว่าค่าสูงสุดของ zigzag เพราะ zigzag มันจะเลื่อนไปที่ค่าสูงสุดกับต่ำ เสมอ ลองเอาไปดูครับ
static double high ;
static double low ;
static int direct=0;
int start()
{
double ticket, total, pc;
pc=iClose(NULL,0,1);
total=OrdersTotal();
int amount=0;
double temp[3];
double tem;
for(int i=0 ;i<5000;i++)
{
tem=iCustom(NULL, 0, "ZigZag",13,0,i);
if(tem>0)
{
temp[amount]=tem;
amount++;
if(amount>1)
{
i=5001;
}
}
}
if(temp[0]>temp[1])
{
high=temp[0];
low=temp[1];
direct=1;
}
if(temp[0]<temp[1])
{
high=temp[1];
low=temp[0];
direct=2;
}
if((total>0) && (pc<low ))
{
OrderClose(OrderTicket(),OrderLots(),Bid,1,Red);
Print("sale");
return(0);
}
if((total==0)&&(pc>high))
{
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,1,0,0,"buy",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
Print("buy");
}
Print("Pc ",pc);
Print("high ",high);
Print("Low ",low);
return(0);
}