GoStopAndProfitVVP

Author: ����� ������
Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategy
0 Views
0 Downloads
0 Favorites
GoStopAndProfitVVP
//+------------------------------------------------------------------+
//|                                           GoStopAndProfitVVP.mq4 |
//|                                                     Âàäèì Ïîëóÿí |
//|ÂÛÑÒÀÂËßÅÌ ÑÒÎÏ È ÏÐÎÔÈÒ, ÇÀÒÅÌ ÈÇÌÅÍßÅÌ ÑÒÎÏ È ÏÐÎÔÈÒ.           |
//|Ñêîëüçÿùèå Ñòîï è Ïðîôèò,                                         |
//|Âû âûñòàâëÿåòå îðäåð âðó÷íóþ, à ñîâåòíèê òóò æå âûñòàâëÿåò        |
//|Ñòîï è Ïðîôèò (åñëè âû ýòî ðàçðåøèëè), çàòåì åñëè ïîçèöèÿ èäåò    | 
//|â "ïëþñ" òî Ñòîï óìåíüøàåòñÿ (åñëè ïîçèöèÿ óéäåò ðåçêî            |
//|â "ìèíóñ" - ïîëó÷èì ìåíüøèé óáûòîê); åñëè æå ïîçèöèÿ èäåò         |
//|â "Ìèíóñ", òî Ïðîôèò óìåíüøàåòñÿ (íà ñëó÷àé åñëè áóäåò íåáîëüøîå  |
//|äâèæåíèå â "ïîëþñ" åñòü âåðîÿòíîñòü ïîëó÷èòü õîòü êàêóþ òî ïðèáûëü|
//+------------------------------------------------------------------+
#property copyright "Âàäèì Ïîëóÿí"
#property link      ""

   bool   result;
   double stop_loss,take_profit,point;
   int    cmd,total,error;
   
   extern int TrailingStop = 400;
   extern int TrailingProfit = 400;
   extern int GoStop = 1;// åñëè "1" òî äâèãàåì ñòîï, åñëè "0" òî íå äâèãàåì.
   extern int GoProfit = 1;// åñëè "1" òî äâèãàåì, åñëè "0" òî íå äâèãàåì.

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
   
//----
   total=OrdersTotal();
   //Print("total",total);
   point=MarketInfo(Symbol(),MODE_POINT);
//----
    for(int i=0; i<total; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         //---- print selected order
         //OrderPrint();
         cmd=OrderType();
         //---- buy or sell orders are considered
         if(cmd==OP_BUY || cmd==OP_SELL)
           {
            //---- modify first market order
            //while(true)
              
               stop_loss = OrderStopLoss();
               take_profit = OrderTakeProfit();
               
               //Print(" ñòàðûå  stop_loss ",stop_loss,"take_profit ",take_profit);
               
               if (GoStop >= 1)
               {
               if(cmd==OP_BUY) 
               {
               if((OrderStopLoss()< Ask-point*TrailingStop)||(OrderStopLoss()==0))  stop_loss=Ask-TrailingStop*point;
               }
               else
               {
               if((OrderStopLoss()> Bid+point*TrailingStop)||(OrderStopLoss()==0)) stop_loss=Bid+TrailingStop*point;
               }
               }
               
               
               if (GoProfit >= 1)
               {
               if(cmd==OP_BUY) 
               {
               if((OrderTakeProfit()>Ask+(point*TrailingProfit))||(OrderTakeProfit()==0)) take_profit=Ask+(TrailingProfit*point);
               }
               else            
               {
               if((OrderTakeProfit()<Bid-(point*TrailingProfit))||(OrderTakeProfit()==0)) take_profit=Bid-(TrailingProfit*point);               
               
               }
               }
               
               
               Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
               
               if ((stop_loss != OrderStopLoss()) || (take_profit != OrderTakeProfit()))
               {
               result=OrderModify(OrderTicket(),0,stop_loss,take_profit,0,CLR_NONE);
               //Sleep (1000);
               Print("ðàáîòàþ, èçìåíÿþ - íîâûå ñòîï è ïðîôèò  ",stop_loss,"  ",take_profit, "Ðåçóëüòàò: ", result);
               }            
               else
               {
               Print("Íè÷åãî íå ìåíÿþ");
               }
                              
              
           }
        }
      }
//----
   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 ---