tral_to_close

Author: Vyacheslav Barbakov
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself
0 Views
0 Downloads
0 Favorites
tral_to_close
//+------------------------------------------------------------------+
//| Ñîâåòíèê îòñëåæèâàåò îòêðûòûå ðûíî÷íûå îðäåðà BUY è SELL         |
//| è êàê òîëüêî îðäåð ñòàíîâèòñÿ áåçóáûòî÷íûì òðàëèò èõ íà          |
//| óñòàíîâëåííîì ðàññòîÿíèè razmer_trala_punktov                    |
//+------------------------------------------------------------------+
#property copyright "Vyacheslav Barbakov"
#property link      "barbakov@bk.ru"
//+------------------------------------------------------------------+
extern   int     razmer_trala_punktov   = 10;
extern   int     MagicNumber            = 0;
//+------------------------------------------------------------------+
         double  uroven_buy_close       = 0;
         double  uroven_sell_close      = 0; 
         double  uroven_buy_bezubitka   = 0;
         double  uroven_sell_bezubitka  = 0; 
         double  stop_buy;
//+------------------------------------------------------------------+
int deinit()
{
  Comment("  ");
  return(0);
}
//+------------------------------------------------------------------+
int start()
{
  Comment("\n  Ñîâåòíèê îæèäàåò ðûíî÷íûõ îðäåðîâ BUY èëè SELL",
          "\n  è âûõîä íà ïðèáûëüíîñòü ", razmer_trala_punktov, " ïóíêòîâ");

  static bool    res_close_buy       =  true;
  static bool    res_close_sell      =  true;
  static int     rost                =  0;
  static int     padenie             =  0;
         double  otstup              =  NormalizeDouble(razmer_trala_punktov * Point, Digits);
         
  for (int t = 0; t < OrdersTotal(); t ++)
  if(OrderSelect(t, SELECT_BY_POS))
  {
//+------------------------------------------------------------------+
//| Ïðîâåðÿåì îòêðûòûå ðûíî÷íûå îðäåðà BUY
//+------------------------------------------------------------------+
    if (OrderType() == 0 && OrderMagicNumber() == MagicNumber)
    {
      if (Bid > OrderOpenPrice() && rost == 0)
      {
        uroven_buy_bezubitka = Bid;
        uroven_buy_close = Bid;
        rost = 1;
      }
      
      if (Bid > uroven_buy_bezubitka && uroven_buy_bezubitka != 0 && Bid > uroven_buy_close)
      { 
        uroven_buy_close = Bid;
      }
      if (uroven_buy_close - Bid > 0)
      {
        int otkat_buy = (uroven_buy_close - Bid)* MathPow(10, Digits);
      }
      Comment("\n Ïðèáûëü: ", OrderProfit(), " ", AccountCurrency(), ",  èëè ", OrderProfit() / OrderLots(), " ïóíêòîâ.", 
              "\n Óðîâåíü ìàêñèìóìà: ", DoubleToStr(uroven_buy_close, Digits),
              "\n Óðîâåíü áåçóáûòêà: ", DoubleToStr(uroven_buy_bezubitka, Digits),
              "\n Îòêàò: ", otkat_buy, ",  äî ", razmer_trala_punktov );

      if (Bid + otstup < uroven_buy_close || !res_close_buy && uroven_buy_close != 0)
      {
        res_close_buy = OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
        if (res_close_buy)
        {
          Comment("  ");
          rost = 0;
          uroven_buy_bezubitka = 0;
          uroven_buy_close = 0;
        }
      }
    }
//+------------------------------------------------------------------+
//| Ïðîâåðÿåì îòêðûòûå ðûíî÷íûå îðäåðà SELL
//+------------------------------------------------------------------+
    if (OrderType() ==  1  && OrderMagicNumber() == MagicNumber) 
    {
      if (Ask < OrderOpenPrice() && padenie == 0)
      {
        uroven_sell_bezubitka = Ask;
        uroven_sell_close = Ask;
        padenie = 1;
      }

      if (Ask < uroven_sell_bezubitka && uroven_sell_bezubitka != 0 && Ask < uroven_sell_close)
      { 
        uroven_sell_close = Ask;
      }
      if (Ask - uroven_sell_close  > 0 && uroven_sell_close != 0)
      {
        int otkat_sell = (Ask - uroven_sell_close)* MathPow(10, Digits);
      }

      Comment("\n Ïðèáûëü: ", OrderProfit(), 
              "\n Óðîâåíü ìàêñèìóìà: ", DoubleToStr(uroven_sell_close, Digits),
              "\n Óðîâåíü áåçóáûòêà: ", DoubleToStr(uroven_sell_bezubitka, Digits),
              "\n Îòêàò: ", otkat_sell );

      if (Ask - otstup > uroven_sell_close || !res_close_sell && uroven_sell_close != 0)
      {
        res_close_sell = OrderClose(OrderTicket(), OrderLots(), Ask, 3, Blue);
        if (res_close_sell)
        {
          padenie = 0;
          uroven_sell_bezubitka = 0;
          uroven_sell_close = 0;
          Comment(" ");
        }
      }
    }
//+------------------------------------------------------------------+
  }
  return(0);
}
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---