Orders Execution
Miscellaneous
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---