Nevalyashka3_1

Author: Copyright � 2013 ������ �������
Orders Execution
It automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategy
0 Views
0 Downloads
0 Favorites
Nevalyashka3_1
//+------------------------------------------------------------------+
//|                                                  Nevalyashka.mq4 |
//|                               Copyright © 2013  Ñåðãåé Ñîáàêèí   |
//|                                                zavanet@mail.ru   |
//|                    |
//--------------------------------------------------------------------
#property copyright "Copyright © 2013  Ñåðãåé Ñîáàêèí"
#property link      "zavanet@mail.ru"
//--------------------------------------------------------------------
extern string _1.0="Îáùèå íàñòðîéêè";
extern double  StartLot=0.1; //ëîò (N)
extern double  K_lot=1.4; //ëîò, íà êîòîðûé óâåëè÷èòüñÿ ïðè ïîëó÷åíèè ìèíóñà (M) ëèáî ýòî ìíîæèòåëü êîýô
extern int     takeprofit     = 1900, //Ïðîôèò
               moveprofit     = 100,  //Øàã òðàëà
               stoploss       = 700;  // Ñòîï ëîññ
               

int tip;//Òèï îðäåðà (Ñåëë, Áàé)
double eq=0; //Ñîõðàíåííîå çíà÷åíèå ýêâèòè
double OpenPrice=0;//Öåíà îòêðûòèÿ îðäåðà
double min=0;
double max=0;
double Lot; //ëîò (N)
double ma;
string n;
int TP;
int op;
//--------------------------------------------------------------------
int init()
{
   eq=AccountEquity(); //Çàïîìèíàåì ýêâèòè
   Lot=StartLot;       //Ëîò îðäåðîâ ðàâåí íà÷àëüíîìó 
   if (OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lot,1),Bid,3,NormalizeDouble(Ask+stoploss*Point,Digits),
                NormalizeDouble(Bid - takeprofit*Point,Digits)," ",777,Blue)!=-1) // íà÷àëå îòêðûâàåì ñåëë.tip=1
       {
       tip=1; 
       OpenPrice=Bid;
       } 
}
//--------------------------------------------------------------------
int start()
{

   bool result;

   if (OrdersTotal()==0) //Çàêðûëñÿ îðäåð
      {   
      if (AccountEquity()>eq) //Òåêóùåå ýêâèòè áîëüøå ñîõðàíåííîãî,ò.å. çàêðûëèñü â ïëþñ
         {
         eq=AccountEquity();//Çàïîìèíàåì òåêóùåå ýêâèòè
         Lot=StartLot;//Îáúåì ëîòà ñáðàñûâàåò äî íà÷àëüíîãî
         if (tip==0) // Çàêðûëñÿ áàé
            {
            if (OrderSend(Symbol(),OP_BUY ,NormalizeDouble(Lot,1),Ask,3,NormalizeDouble(Bid-stoploss*Point,Digits),
                                    NormalizeDouble(Ask + takeprofit*Point,Digits)," ",777,Blue)!=-1) OpenPrice=Ask;// Îòêðûâàåì îðäåð â òîì íàïðàâëåíèè è çàïîìèíàåì öåíó îòêðûòèÿ
            }
         if (tip==1) // Çàêðûëñÿ ñåëë
            {
            if (OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lot,1),Bid,3,NormalizeDouble(Ask+stoploss*Point,Digits),
                                    NormalizeDouble(Bid - takeprofit*Point,Digits)," ",777,Blue)!=-1) OpenPrice=Bid;
            }
         }else //Òåêóùåå ýêâèòè ìåíüøå ñîõðàíåííîãî,ò.å. çàêðûëèñü â ìèíóñ
         { 
         Lot=Lot*K_lot; //óâåëè÷èëè ëîò
         if (tip==0) //Çàêðûëñÿ áàé 
            {
            if (OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lot,1),Bid,3,NormalizeDouble(Ask+stoploss*Point,Digits),
                                    NormalizeDouble(Bid - takeprofit*Point,Digits)," ",777,Blue)!=-1) //Îòêðûëè ñåëë
               {    
               OpenPrice=Bid;//ñîõðàíèëè öåíó îòêðûòèÿ
               tip=1;//ïîìåòèëè ñåëë
               return;
               }
            }
         if (tip==1) 
            {
            if (OrderSend(Symbol(),OP_BUY ,NormalizeDouble(Lot,1),Ask,3,NormalizeDouble(Bid-stoploss*Point,Digits),
                                    NormalizeDouble(Ask + takeprofit*Point,Digits)," ",777,Blue)!=-1)
               {
               OpenPrice=Ask;
               tip=0;
               }
            }
         } 
      }else //Îðäåð îòêðûò, îòñëåæèâàåì òðàë
      {
      if (tip==0)//Áàé
         {
         if (Ask-OpenPrice>moveprofit*Point)// Öåíà óøëà âûøå öåíû îòêðûòèÿ îðäåðà íà øàã òðàëà
            {
            if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
               {
               result=OrderModify(OrderTicket(),0,Bid-stoploss*Point,OpenPrice + takeprofit*Point,0,CLR_NONE);//Ïåðåíîñèì ñòîï âûøå
               if (Lot>StartLot && (Bid-stoploss*Point>OrderOpenPrice())) Lot=Lot/K_lot; //Åñëè òåêóùèé ñòîï âûøå öåíû îòêðûòèÿ, òî óìåíüøàåì ëîò ñëåäóþùåãî îðäåðà
               OpenPrice=Ask;  //Ñîõðàíÿåì òåêóùóþ öåíó. Òåïåðü îò íåå ñ÷èòàåì òðàë            
               }
            }
         }else 
         {
         if (OpenPrice-Bid>moveprofit*Point)
            {
            if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
               {
               result=OrderModify(OrderTicket(),0,Ask+stoploss*Point,OpenPrice - takeprofit*Point,0,CLR_NONE);
               if (Lot>StartLot && (Ask+stoploss*Point<OrderOpenPrice())) Lot=Lot/K_lot;
               OpenPrice=Bid;
               }
             }         
         }
      }
   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 ---