Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double spread = Ask-Bid;
- extern datetime time;
- extern int pipGap = 7;
- extern int lotSize = 0.01;
- extern int closeTimeInSeconds = 60;
- bool canSetPendingOrders = true;
- class C2Orders{
- public: CObject
- {
- public:
- int ticket1, ticket2;
- C2Orders(int t1,int t2):ticket1(t1),ticket2(t2){}
- ~C2Orders(){}
- bool check()const{//returns FALSE if deleting the object
- if(OrderSelect(ticket1,SELECT_BY_TICKET)){
- if(OrderType()<=OP_SELL){
- OrderClose(ticket2);
- return(false);
- }
- }
- if(OrderSelect(ticket2,SELECT_BY_TICKET)){
- if(OrderType()<=OP_SELL){
- OrderClose(ticket1);
- return(false);
- }
- }
- return(true);
- };
- CArrayObj* listC2Orders;
- int OnInit(){listC2Orders=new CArrayObj();}
- void OnDeinit(){delete(listC2Orders);}
- void OnTick(){
- if(TimeCurrent() >= time){
- if (canSetPendingOrders) {
- int ticket1=OrderSend(Symbol(),OP_BUYSTOP,lotSize, Ask + Point*pipGap, 0,0,0), ticket2=OrderSend(Symbol(),OP_SELLSTOP,lotSize, Bid - Point*pipGap, 0,0,0);
- listC2Orders.Add(new C2Orders(ticket1,ticket2));
- canSetPendingOrders = false;
- }
- }
- C2Orders *elem;
- for(int i=listC2Orders.Total()-1;i>=0;i--){
- elem=listC2Orders.At(i);
- if(!elem.check()){
- listC2Orders.Delete(i);
- continue;//if need to do some steps with good elements
- double PIPS=_Point*(_Digit%2==1?10:1);
- if (duration >= closeTimeInSeconds ||
- (OrderProfit()>0 && fabs(OrderOpenPrice()-OrderClosePrice()-profitXpips*PIPS>=0))
- OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(),3*Point);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement