Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
novosti_rab_01test_135
//+------------------------------------------------------------------+
//| Set2StopOrders.mq4 |
//| |
//| |
//| |
//| 10.01.2006 Ñêðèïò âûñòàâëÿåò 2 ïðîòèâîïîëîæíûõ ñòîïîâûõ îðäåðà. |
//+------------------------------------------------------------------+
#property show_inputs
//------- Âíåøíèå ïàðàìåòðû ----------------------------------
extern string _P_Trade = "---------- Ïàðàìåòðû òîðãîâëè";
extern double Lots = 0.1; // Ðàçìåð òîðãóåìîãî ëîòà
extern int StopLoss = 30; // Ðàçìåð ôèêñèðîâàííîãî ñòîïà
extern int TakeProfit = 60; // Ðàçìåð ôèêñèðîâàííîãî òýéêà
extern int DistanceSet = 20; // Ðàññòîÿíèå îò ðûíêà
extern int Slippage = 3; // Ïðîñêàëüçûâàíèå öåíû
//------- Ãëîáàëüíûå ïåðåìåííûå ñêðèïòà ------------------------------
string Name_Expert = "Set2StopOrders";
bool UseSound = True; // Èñïîëüçîâàòü çâóêîâîé ñèãíàë
string NameFileSound = "expert.wav"; // Íàèìåíîâàíèå çâóêîâîãî ôàéëà
color clOpenBuy = LightBlue; // Öâåò îðäåðà BuyStop
color clOpenSell = LightCoral; // Öâåò îðäåðà SellStop
extern string _expiration ="Ñðîê óäàëåíèÿ îðäåðà â ìèíóòàõ";
extern int expirat =300; //Ñðîê óäàëåíèÿ îðäåðà â ñåêóíäàõ
extern string _DayTrade ="Äåíü íåäåëè ïî ñðåäíå åâðîâåéñêîìó _ îò è äî (âîñêðåñåíüå-0,1,2,3,4,5,6)";
extern int FromDayTrade = 1;
extern int ToDayTrade = 5;
extern string _HourTrade ="×àñ ïî ñðåäíå åâðîâåéñêîìó _ îò è äî";
extern int FromHourTrade = 14;
extern int ToHourTrade = 14;
extern string _MinuteTrade ="Ìèíóòû îò è äî";
extern int FromMinuteTrade = 25;
extern int ToMinuteTrade = 29;
extern int CloseHour=14;
extern int CloseMinute=35;
int LastTradeTime;
//------- Âíåøíèå ïàðàìåòðû ------------------------------------------
extern bool AllPositions = False; // Óïðàâëÿòü âñåìè ïîçèöèÿìè
extern bool ProfitTrailing = True; // Òðàëèòü òîëüêî ïðîôèò
extern int TrailingStop = 15; // Ôèêñèðîâàííûé ðàçìåð òðàëà
extern int TrailingStep = 2; // Øàã òðàëà
//extern bool UseSound = True; // Èñïîëüçîâàòü çâóêîâîé ñèãíàë
//extern string NameFileSound = "expert.wav"; // Íàèìåíîâàíèå çâóêîâîãî ôàéëà
//***********************Close ALL
extern string _CloseALL ="Çàêðûòèå âñåõ ïîçèöèé â êîíöå äíÿ";
extern int CloseHour1 = 23; // Âðåìÿ çàêðûòèÿ, ÷àñû
extern int CloseMinute1 = 0; // Âðåìÿ çàêðûòèÿ, ìèíóòû
extern bool UseCurrSymbol = False; // Èñïîëüçîâàòü òîëüêî îäèí èíñòðóìåíò
extern bool UseOneAccount = False; // Èñïîëüçîâàòü òîëüêî îäèí ñ÷¸ò
extern int NumberAccount = 34827; // Íîìåð òîðãîâîãî ñ÷¸òà
extern color clCloseBuy = Blue; // Öâåò çàêðûòèÿ ïîêóïêè
extern color clCloseSell = Red; // Öâåò çàêðûòèÿ ïðîäàæè
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
void start() {
//***********************Çàêðûòèå âñåõ ïîçèöèé â íàçíà÷åííîå âðåìÿ (êîíåö äíÿ)
double pBidc, pAskc;
if (UseOneAccount && AccountNumber()!=NumberAccount) {
Comment("Ðàáîòà íà ñ÷¸òå: "+AccountNumber()+" ÇÀÏÐÅÙÅÍÀ!");
return;
} else Comment("");
if (Hour()==CloseHour1 && Minute()>=CloseMinute1) {
for (int g=OrdersTotal()-1; g>=0; g--) {
if (OrderSelect(g, SELECT_BY_POS, MODE_TRADES)) {
if (!UseCurrSymbol || OrderSymbol()==Symbol()) {
if (OrderType()==OP_BUY) {
pBidc=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pBidc, Slippage, clCloseBuy);
}
if (OrderType()==OP_SELL) {
pAskc=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), pAskc, Slippage, clCloseSell);
}
}
}
}
}
//******************Òðåëèíã--------------------
for (int j=0; j<OrdersTotal(); j++) {
if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) {
if (AllPositions || OrderSymbol()==Symbol()) {
TrailingPositions();
}
}
}
// íå ðàáîòàåò â âûõîäíûå äíè.
// if(DayOfWeek()==0 || DayOfWeek()==6) return(0);
int total, cnt, OpenOrder, DefOrder, pos;
// Ñ÷èòàåì êîëè÷åñòâî îòêðûòûõ è îòëîæåííûõ îðäåðîâ ïî òåêóùåìó èíñòðóìåíòó
total=OrdersTotal();
OpenOrder=0;
DefOrder=0;
for(cnt=0;cnt<total;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
OpenOrder++; // êîëè÷åñòâî îòêðûòûõ îðäåðîâ
else
DefOrder++; // êîëè÷åñòâî çàêðûòûõ îðäåðîâ
}
}
//***************** Óäàðåíèå îðäåðîâ ïîñëå íîâîñòåé************************
if (Hour()==CloseHour && Minute()>=CloseMinute) {
for (int i=OrdersTotal()-1; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol()) {
if ((OrderType()==OP_BUYSTOP) || (OrderType()==OP_SELLSTOP) ){
OrderDelete(OrderTicket());
}
}
}
}
return (1);
}
//***********Îòêðûòèå îðäåðîâ ïåðåä íîâîñòÿìè*********************
if (OpenOrder>0 || DefOrder>0) return (0);
if (OpenOrder==0 && DefOrder==0)
if((Year()==2006 && Month()==3 && Day()==15 && Hour()==15 && Minute()==0) ||
(Year()==2006 && Month()==3 && Day()==14 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==3 && Day()==10 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==3 && Day()==9 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==3 && Day()==3 && Hour()==11 && Minute()==0) ||
(Year()==2006 && Month()==3 && Day()==2 && Hour()==13 && Minute()==45) ||
(Year()==2006 && Month()==3 && Day()==1 && Hour()==11 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==28 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==2 && Day()==22 && Hour()==11 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==16 && Hour()==16 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==15 && Hour()==16 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==15 && Hour()==15 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==14 && Hour()==11 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==10 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==2 && Day()==8 && Hour()==8 && Minute()==0) ||
(Year()==2006 && Month()==2 && Day()==3 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==2 && Day()==2 && Hour()==13 && Minute()==45) ||
(Year()==2006 && Month()==2 && Day()==1 && Hour()==11 && Minute()==0) ||
(Year()==2006 && Month()==1 && Day()==31 && Hour()==20 && Minute()==15) ||
(Year()==2006 && Month()==1 && Day()==27 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==1 && Day()==24 && Hour()==10 && Minute()==0) ||
(Year()==2006 && Month()==1 && Day()==19 && Hour()==11 && Minute()==0) ||
(Year()==2006 && Month()==1 && Day()==18 && Hour()==15 && Minute()==0) ||
(Year()==2006 && Month()==1 && Day()==12 && Hour()==14 && Minute()==30) ||
(Year()==2006 && Month()==1 && Day()==12 && Hour()==13 && Minute()==45) ||
(Year()==2006 && Month()==1 && Day()==9 && Hour()==8 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==23 && Hour()==10 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==21 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==12 && Day()==20 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==16 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==12 && Day()==15 && Hour()==15 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==15 && Hour()==9 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==14 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==12 && Day()==13 && Hour()==20 && Minute()==15) ||
(Year()==2005 && Month()==12 && Day()==12 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==9 && Hour()==8 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==2 && Hour()==15 && Minute()==0) ||
(Year()==2005 && Month()==12 && Day()==2 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==12 && Day()==1 && Hour()==13 && Minute()==45) ||
(Year()==2005 && Month()==12 && Day()==1 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==30 && Hour()==20 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==30 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==11 && Day()==30 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==30 && Hour()==9 && Minute()==55) ||
(Year()==2005 && Month()==11 && Day()==24 && Hour()==10 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==22 && Hour()==8 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==21 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==16 && Hour()==15 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==15 && Hour()==16 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==15 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==10 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==11 && Day()==9 && Hour()==8 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==4 && Hour()==14 && Minute()==30) ||
(Year()==2005 && Month()==11 && Day()==4 && Hour()==11 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==3 && Hour()==16 && Minute()==0) ||
(Year()==2005 && Month()==11 && Day()==3 && Hour()==13 && Minute()==45) ||
(Year()==2005 && Month()==11 && Day()==1 && Hour()==20 && Minute()==15) )
{
double ldStop=0, ldTake=0;
double pAsk=Ask+DistanceSet*Point;
double pBid=Bid-DistanceSet*Point;
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake);
if (StopLoss!=0) ldStop=pBid+StopLoss*Point;
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake);
}
}
//+------------------------------------------------------------------+
//| Óñòàíîâêà îðäåðà |
//| Ïàðàìåòðû: |
//| op - îïåðàöèÿ |
//| pp - öåíà |
//| ldStop - óðîâåíü ñòîï |
//| ldTake - óðîâåíü òåéê |
//+------------------------------------------------------------------+
void SetOrder(int op, double pp, double ldStop, double ldTake) {
color clOpen;
string lsComm=GetCommentForOrder();
if (op==OP_BUYSTOP) clOpen=clOpenBuy;
else clOpen=clOpenSell;
OrderSend(Symbol(),op,Lots,NormalizeDouble(pp,4),Slippage,NormalizeDouble(ldStop,4),NormalizeDouble(ldTake,4),lsComm,0,CurTime()+expirat ,clOpen);
if (UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+
//| Ãåíåðèðóåò è âîçâðàùàåò ñòðîêó êîìåíòàðèÿ äëÿ îðäåðà èëè ïîçèöèè |
//+------------------------------------------------------------------+
string GetCommentForOrder() {
return(Name_Expert+" "+GetNameTF(Period()));
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò íàèìåíîâàíèå òàéìôðåéìà |
//+------------------------------------------------------------------+
string GetNameTF(int TimeFrame) {
switch (TimeFrame) {
case PERIOD_MN1: return("Monthly");
case PERIOD_W1: return("Weekly");
case PERIOD_D1: return("Daily");
case PERIOD_H4: return("H4");
case PERIOD_H1: return("H1");
case PERIOD_M30: return("M30");
case PERIOD_M15: return("M15");
case PERIOD_M5: return("M5");
case PERIOD_M1: return("M1");
default: return("UnknownPeriod");
}
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Ñîïðîâîæäåíèå ïîçèöèè ïðîñòûì òðàëîì |
//+------------------------------------------------------------------+
void TrailingPositions() {
double pBid, pAsk, pp;
pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY) {
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp) {
ModifyStopLoss(pBid-TrailingStop*pp);
return;
}
}
}
if (OrderType()==OP_SELL) {
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp) {
if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
ModifyStopLoss(pAsk+TrailingStop*pp);
return;
}
}
}
}
//+------------------------------------------------------------------+
//| Ïåðåíîñ óðîâíÿ StopLoss |
//| Ïàðàìåòðû: |
//| ldStopLoss - óðîâåíü StopLoss |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
if (fm && UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+
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
---