Open_Market_Orders

Author: Copyright � 2014, ������� ��������
Orders Execution
It automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategy
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Open_Market_Orders
#property copyright "Copyright © 2014, Õëûñòîâ Âëàäèìèð"
#property link      "cmillion@narod.ru"
#property show_inputs
#property version   "1.00"
#property strict
//--------------------------------------------------------------------
#property description "ñêðèïò ïî òåêóùåé öåíå îòêðîåò ñðàçó óêàçàííîå â ïåðåìåííîé orders êîë-âî îðäåðîâ ïî îäíîé öåíå, "
#property description "âûñòàâèò ñòîïû ó âñåõ íà îäèíàêîâîì ðàçìåðå ïóíêòîâ, òåéêè áóäóò ó âñåõ ðàçíûå, ïî ìåðå óâåëè÷åíèÿ." 
#property description "Íàïðèìåð, îòêðûëèñü 10 îðäåðîâ ëîòîì 0,01, ñòîïû ó âñåõ 400 ïóíêòîâ, à òåéêè íà ïåðâîì - 50, "
#property description "íà âòîðîì -100, íà òðåòüåì - 150, íà ÷åòâåðòîì - 200 íó è òàê âñå 10 îðäåðîâ."
//--------------------------------------------------------------------
input int     type         = OP_BUY;   //òèï îðäåðà 0 - buy;   1 - sell
input int     orders       = 10;       //êîë-âî îðäåðîâ
input int     stoploss     = 200;       //óðîâåíü âûñòàâëåíèÿ SL, åñëè 0, òî SL íå âûñòàâëÿåòñÿ
input int     takeprofit   = 200;       //óðîâåíü âûñòàâëåíèÿ TP, åñëè 0, òî SL íå âûñòàâëÿåòñÿ
input int     Step_TP      = 100;       //øàã âûñòàâëåíèÿ ïîñëåäóþùèõ TP
input double  Lot          = 0.1;      //îáúåì îðäåðà

input int     slippage     = 3;        //Ìàêñèìàëüíî äîïóñòèìîå îòêëîíåíèå öåíû äëÿ ðûíî÷íûõ îðäåðîâ
input int     Magic        = 0;        //óíèêàëüíûé íîìåð îðäåðà
//--------------------------------------------------------------------
double SL,TP;
//--------------------------------------------------------------------
int start()
{
   if (type==OP_BUY)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
   }
   if (type==OP_SELL)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;     
   }
   for (int i=0; i<orders; i++)
   {
      if (type==OP_BUY)
      {
         OPENORDER (type,NormalizeDouble(Ask,Digits));
         TP  = NormalizeDouble(TP + Step_TP*Point,Digits);
      }
      if (type==OP_SELL)
      {
         OPENORDER (type,NormalizeDouble(Bid,Digits));
         TP  = NormalizeDouble(TP - Step_TP*Point,Digits);
      }
   }
return(0);
}
//--------------------------------------------------------------------
void OPENORDER(int ord, double Price)
{
   int error=0,err=0;
   while (!IsStopped())
   {  
      RefreshRates();
      error=OrderSend(Symbol(),ord, Lot, Price,slippage,0,0,NULL,Magic,0,clrNONE);
      if (error==-1)
      {  
         ShowERROR();
         err++;
      }
      else
      {
         if (!OrderModify(error,Price,SL,TP,0,White)) Print("Error OrderModify ",GetLastError());
         return;
      }
      if (err > 10) return;
      Sleep(2000);
   }
return;
}                  
//--------------------------------------------------------------------
void ShowERROR()
{
   int err=GetLastError();
   switch ( err )
   {                  
      case 1:   return;
      case 2:   Alert("Íåò ñâÿçè ñ òîðãîâûì ñåðâåðîì ",Symbol());return;
      case 3:   Alert("Error íåïðàâèëüíûå ïàðàìåòðû ",Symbol());return;
      case 130: Alert("Error áëèçêèå ñòîïû   Ticket ",Symbol());return;
      case 134: Alert("Íåäîñòàòî÷íî äåíåã   ",Symbol());return;
      case 146: Alert("Error Ïîäñèñòåìà òîðãîâëè çàíÿòà ",Symbol());return;
      case 129: Alert("Error Íåïðàâèëüíàÿ öåíà ",Symbol());return;
      case 131: Alert("Error Íåïðàâèëüíûé îáúåì ",Symbol());return;
      case 4200:Alert("Error Îáúåêò óæå ñóùåñòâóåò ",Symbol());return;
      default:  Alert("Error  " ,err," ",Symbol());return;
   }
}
//--------------------------------------------------------------------

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 ---