void QnSignalTrend(){
//double result();
int result=0;
int counter = 0;
int ticket = 0;
int iTF = PERIOD_M30;//Period(); //M1
double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
Alert("Minimum Stop Level=",minstoplevel," points");
//double price=Ask;
//--- calculated SL and TP prices must be normalized
double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits);
double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits);
Alert("TP=",takeprofit," points");
if(profit()>5){ CloseOrders(); }
//signal BUY jika p0>p1>p2
//signal SELL jika p0<p1<p2
//signal CLOSE jika p1>p2 dan p0<p1
//signal CLOSE jika p1<p2 dan p0>p1
//signal pertama BUY jika tidak ada OP dan p0>p1
//signal pertama SELL jika tidak ada OP dan p0<p1
double tpBUY = Ask+iTP;
double tpSELL = Bid-iTP;
double tpBUY2 = Ask+iTP;
double tpSELL2 = Bid-iTP;
if(OrdersTotal()==0 && pTrend0>pTrend1){
//buy
Alert("First BUY :"+(string)pTrend0+";"+(string)pTrend1+";"+(string)pTrend2);
ticket=OrderSend(NULL,OP_BUY,diLots,Ask,3,0,tpBUY,sComment,16384,0,clrBlueViolet);
// ticket=OrderSend(NULL,OP_SELL,diLots*2,Bid,3,0,tpSELL2,sComment,16384,0,clrRed);
}else if(OrdersTotal()==0 && pTrend0<pTrend1){
Alert("First SELL :"+(string)pTrend0+";"+(string)pTrend1+";"+(string)pTrend2);
ticket=OrderSend(NULL,OP_SELL,diLots,Bid,3,0,tpSELL,sComment,16384,0,clrRed);
//ticket=OrderSend(NULL,OP_BUY,diLots*2,Ask,3,0,tpBUY2,sComment,16384,0,clrBlueViolet);
}else {
if(pTrend0>pTrend1 && pTrend1>pTrend2){
//buy
Alert("BUY :"+(string)pTrend0+";"+(string)pTrend1+";"+(string)pTrend2);
if(QnCekOPSELL()>0){
Alert("Close All Sell "+(string)QnCekOPSELL());
dLots = diLots*firstLots;
// CloseOrders();
}
if(OrdersTotal()<iLimitOrders){
ticket=OrderSend(NULL,OP_BUY,diLots,Ask,3,0,tpBUY,sComment,16384,0,clrBlueViolet);
// ticket=OrderSend(NULL,OP_SELL,diLots*2,Bid,3,0,tpSELL2,sComment,16384,0,clrRed);
dLots =diLots;
}
}else if(pTrend0<pTrend1 && pTrend1<pTrend2){
//sell
Alert("SELL :"+(string)pTrend0+";"+(string)pTrend1+";"+(string)pTrend2);
if(QnCekOPBUY()>0){
Alert("Close All Buy "+(string)QnCekOPBUY());
dLots = diLots*firstLots;
//CloseOrders();
}
if(OrdersTotal()<iLimitOrders){
ticket=OrderSend(NULL,OP_SELL,diLots,Bid,3,0,tpSELL,sComment,16384,0,clrRed);
//ticket=OrderSend(NULL,OP_BUY,diLots*2,Ask,3,0,tpBUY2,sComment,16384,0,clrBlueViolet);
dLots =diLots;
}
}
/*else if((pTrend0<pTrend1 && pTrend1>pTrend2) || (pTrend0>pTrend1 && pTrend1<pTrend2)){
//close all
Alert("close all");
CloseOrders();
}*/
}
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
}
else
Print("OrderSend placed successfully");
/*
for(int i=0; i<1 ; i++){
double pTrend = QnTrend(i);
if(pTrend>0){
counter++;
Alert(pTrend);
}
if(i==30){
break;
}
}
*/
if(iVolume(NULL,iTF,0)>1) return;
pTrend0 = QnTrend(0);
pTrend1 = QnTrend(1);
pTrend2 = QnTrend(2);
//return(result);
}