Advertisement
Guest User

Untitled

a guest
May 2nd, 2019
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. double spread = Ask-Bid;
  2. extern datetime time;
  3. extern int pipGap = 7;
  4. extern int lotSize = 0.01;
  5. extern int closeTimeInSeconds = 60;
  6. bool canSetPendingOrders = true;
  7.  
  8.  
  9.  
  10.  
  11. class C2Orders{
  12. public: CObject
  13. {
  14. public:
  15. int ticket1, ticket2;
  16. C2Orders(int t1,int t2):ticket1(t1),ticket2(t2){}
  17. ~C2Orders(){}
  18.  
  19. bool check()const{//returns FALSE if deleting the object
  20. if(OrderSelect(ticket1,SELECT_BY_TICKET)){
  21. if(OrderType()<=OP_SELL){
  22. OrderClose(ticket2);
  23. return(false);
  24. }
  25. }
  26. if(OrderSelect(ticket2,SELECT_BY_TICKET)){
  27. if(OrderType()<=OP_SELL){
  28. OrderClose(ticket1);
  29. return(false);
  30. }
  31. }
  32. return(true);
  33. };
  34. CArrayObj* listC2Orders;
  35.  
  36. int OnInit(){listC2Orders=new CArrayObj();}
  37. void OnDeinit(){delete(listC2Orders);}
  38. void OnTick(){
  39. if(TimeCurrent() >= time){
  40. if (canSetPendingOrders) {
  41. 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);
  42. listC2Orders.Add(new C2Orders(ticket1,ticket2));
  43. canSetPendingOrders = false;
  44. }
  45. }
  46.  
  47. C2Orders *elem;
  48. for(int i=listC2Orders.Total()-1;i>=0;i--){
  49. elem=listC2Orders.At(i);
  50. if(!elem.check()){
  51. listC2Orders.Delete(i);
  52. continue;//if need to do some steps with good elements
  53. double PIPS=_Point*(_Digit%2==1?10:1);
  54.  
  55. if (duration >= closeTimeInSeconds ||
  56. (OrderProfit()>0 && fabs(OrderOpenPrice()-OrderClosePrice()-profitXpips*PIPS>=0))
  57. OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(),3*Point);
  58.  
  59. }
  60. }
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement