int N, i, Ticket1, Ticket2; double k, Price1, Price2, val; double a, b, c, a1, b1; double sumx = 0.0; double sumxy = 0.0; double sumx2 = 0.0; double ln_maxDev, ln_maxDev1; double deviation; double dvalue; int Orders1 (double a1,double b1,double ln_maxDev1) { Price1=MathRound((a1+ln_maxDev1-b1+20*Point)*10000)/10000; Price2=MathRound((a1-ln_maxDev1-b1-20*Point)*10000)/10000; Ticket1=OrderSend(Symbol( ),OP_BUYSTOP,0.1, Price1,3, Price2+10*Point, 0); Ticket2=OrderSend(Symbol( ),OP_SELLSTOP,0.1, Price2,3, Price1-10*Point, 0); return; } bool TSs() { if ((Ask+40*Point)OrderStopLoss()) { OrderModify(OrderTicket( ),OrderOpenPrice( ),Bid-40*Point,OrderTakeProfit( ),0); return(true); } return(false); } int start() { if ((iBars(0,0)!=N)&&(iBars(0,0)>7)) { N=iBars(0,0); double value; double sumy = 0; for ( i = 1; i < 8; i++) { value = Close[i]; sumy += value; sumxy += value * i; sumx += i; sumx2 += i * i; } c = sumx2 * 8 - sumx * sumx; b = (sumxy * 8 - sumx * sumy) / c; a = (sumy - sumx * b) / 8; ln_maxDev = 0; for (i = 0; i < 8; i++) { dvalue = a + b * (i - 1); deviation = MathAbs(Close[i] - dvalue); if (deviation >= ln_maxDev) { ln_maxDev = deviation; } } k=MathAbs(7*b); val=2*ln_maxDev; if (OrderSelect(Ticket1, SELECT_BY_TICKET)==True) { if (OrderType()==OP_BUYSTOP) { if (OrderSelect(Ticket2, SELECT_BY_TICKET)==True) { if (OrderType()==OP_SELLSTOP) { if ((k<0.0015)&&(val<=0.004)) { OrderDelete(Ticket1); OrderDelete(Ticket2); Orders1(a,b,ln_maxDev); } } else { if (OrderCloseTime()==0) { OrderDelete(Ticket1); TSs(); } else { OrderDelete(Ticket1); if ((k<0.0015)&&(val<=0.004)) { Orders1(a,b,ln_maxDev); } } } } else { if ((k<0.0015)&&(val<=0.004)) { OrderDelete(Ticket1); Orders1(a,b,ln_maxDev); } } } else { if (OrderCloseTime()==0) { if ((OrderSelect(Ticket2, SELECT_BY_TICKET)==True)&&(OrderCloseTime()==0)) { OrderDelete(Ticket2); } OrderSelect(Ticket1, SELECT_BY_TICKET); TSb(); } else { if (OrderSelect(Ticket2, SELECT_BY_TICKET)==True) { if (OrderType()==OP_SELLSTOP) { if ((k<0.0015)&&(val<=0.004)) { OrderDelete(Ticket2); Orders1(a,b,ln_maxDev); } } else { if (OrderCloseTime()==0) { TSs(); } else { if ((k<0.0015)&&(val<=0.004)) { Orders1(a,b,ln_maxDev); } } } } else { if ((k<0.0015)&&(val<=0.004)) { Orders1(a,b,ln_maxDev); } } } } } else { if (OrderSelect(Ticket2, SELECT_BY_TICKET)==True) { if (OrderType()==OP_SELLSTOP) { if ((k<0.0015)&&(val<=0.004)) { OrderDelete(Ticket2); Orders1(a,b,ln_maxDev); } } else { if (OrderCloseTime()==0) { TSs(); } else { if ((k<0.0015)&&(val<=0.004)) { Orders1(a,b,ln_maxDev); } } } } else { if ((k<0.0015)&&(val<=0.004)) { Orders1(a,b,ln_maxDev); } } } } else { if (OrderSelect(Ticket1, SELECT_BY_TICKET)==True) { if (OrderType()==OP_BUY) { if (OrderCloseTime()==0) { if ((OrderSelect(Ticket2, SELECT_BY_TICKET)==True)&&(OrderCloseTime()==0)) { OrderDelete(Ticket2); } OrderSelect(Ticket1, SELECT_BY_TICKET); TSb(); } else { if (OrderSelect(Ticket2, SELECT_BY_TICKET)==True) { if (OrderType()==OP_SELL) { if (OrderCloseTime()==0) { TSs(); } } } } } else { if (OrderSelect(Ticket2, SELECT_BY_TICKET)==True) { if (OrderType()==OP_SELL) { if (OrderCloseTime()==0) { OrderDelete(Ticket1); TSs(); } } } } } else { if (OrderSelect(Ticket2, SELECT_BY_TICKET)==True) { if (OrderType()==OP_SELL) { if (OrderCloseTime()==0) { TSs(); } } } } } return(0); }