Зачем велосипед изобретать. Уже есть советник e-News-Lucky$. Вот если бы добавил какое- нибудь условие по определению напраления открытия, тогда было бы что-то новое.
Если можешь добавь такое условие: если цена закрытия нового дня ниже цены закрытия предыдущего дня, то выставляем в короткую. Если цена закрытия нового дня выше цены закрытия
предыдущего дня, то выставляем в длинную. Если дневной бар внутренний, то ничего неставим. Время установки 00ч05м. Добавь стоплосс. Убери время закрытия.
Помоему такой прицип заложен в советнике на чемпионате Liliput. Там USDJPY, дневка. ТП-460, Стоплосс-180.
Пытался добавить минуты для запуска ордеров в более точное время, но что не получается, то есть в нужное время ордера не открываются. Я не силен пока в программировании, может кто поможет что тут у меня за проблема?. Вообще бы еще хотелось устанавливать для открытия и день недели. Было бы вообще хорошо, если бы советник учитывал бы угол предыдущего тренда и при определенном превышении наклона не открывал бы второй не нужный ордер. Есть спецы?
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double Lots = 0.1;
extern int ChasStart = 15;
extern int MinuteStart = 15;
extern int ChasStop = 16;
extern int MinuteStop = 16;
extern int Step = 15;
extern int TP = 100;
int prevtime;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int OrderCountOtl=0;
int i=0;
int total = OrdersTotal();
for(i = 0; i <= total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 12321)
{
if (OrderType()>1) OrderCountOtl++;
}
}
if (OrderCountOtl==1)
{
for(i = 0; i <= total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 12321)
{
if (OrderType()>1) OrderDelete(OrderTicket());
}
}
}
if(Time[0] == prevtime)
return(0);
prevtime = Time[0];
if(!IsTradeAllowed())
{
prevtime = Time[1];
return(0);
}
if (TimeHour(TimeCurrent())==ChasStart && TimeMinute(TimeCurrent())==MinuteStart)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,0,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,0,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStop && TimeMinute(TimeCurrent())==MinuteStop)
{
i=0;
total = OrdersTotal();
for(i = 0; i <= total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 12321)
{
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
if (OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
if (OrderType()>1)OrderDelete(OrderTicket());
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Зачем велосипед изобретать. Уже есть советник e-News-Lucky$. Вот если бы добавил какое- нибудь условие по определению напраления открытия, тогда было бы что-то новое.
Если можешь добавь такое условие: если цена закрытия нового дня ниже цены закрытия предыдущего дня, то выставляем в короткую. Если цена закрытия нового дня выше цены закрытия
предыдущего дня, то выставляем в длинную. Если дневной бар внутренний, то ничего неставим. Время установки 00ч05м. Добавь стоплосс. Убери время закрытия.
Помоему такой прицип заложен в советнике на чемпионате Liliput. Там USDJPY, дневка. ТП-460, Стоплосс-180.
домой приду, поковыряю, посмотрим что получится
Здравствуйте
поэкспериментировал с 21hour немного изменил код и теперь два отложенных ордера выставляются каждый час, круглые сутки. ТП-15 Стоп-15 Получается хороший слив на тестери. Я и подумал, а если за место Стоповых одеров выставлять Лимитные одера то наверно будет прибыль. Но как поменять стоповые на Лимитные я не знаю так как в этом дели полный 0. Кто может помогите изменить.
//+------------------------------------------------------------------+
//| 21hour.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double Lots = 0.1;
extern bool RiskManagement=false; //money management
extern double RiskPercent=0.1; //risk in percentage
extern int ChasStart0 = 0;
extern int ChasStart1 = 1;
extern int ChasStart2 = 2;
extern int ChasStart3 = 3;
extern int ChasStart4 = 4;
extern int ChasStart5 = 5;
extern int ChasStart6 = 6;
extern int ChasStart7 = 7;
extern int ChasStart8 = 8;
extern int ChasStart9 = 9;
extern int ChasStart10 = 10;
extern int ChasStart11 = 11;
extern int ChasStart12 = 12;
extern int ChasStart13 = 13;
extern int ChasStart14 = 14;
extern int ChasStart15 = 15;
extern int ChasStart16 = 16;
extern int ChasStart17 = 17;
extern int ChasStart18 = 18;
extern int ChasStart19 = 19;
extern int ChasStart20 = 20;
extern int ChasStart21 = 21;
extern int ChasStart22 = 22;
extern int ChasStart23 = 23;
extern int ChasStop = 24;
extern int Step = 15;
extern int SL = 0;
extern int TP = 15;
int prevtime;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//risk management
bool MM=RiskManagement;
if(MM){if(RiskPercent<0.1||RiskPercent>100){Comment("Invalid Risk Value.");return(0);}
else{Lots=MathFloor((AccountFreeMargin()*AccountLeverage()*RiskPercent*Point*100)/(Ask*MarketInfo(Symbol(),MODE_LOTSIZE)*
MarketInfo(Symbol(),MODE_MINLOT)))*MarketInfo(Symbol(),MODE_MINLOT);}}
if(MM==false){Lots=Lots;}
int OrderCountOtl=0;
int i=0;
int total = OrdersTotal();
for(i = 0; i <= total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 12321)
{
if (OrderType()>1) OrderCountOtl++;
}
}
if (OrderCountOtl==1)
{
for(i = 0; i <= total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 12321)
{
if (OrderType()>1) OrderDelete(OrderTicket());
}
}
}
if(Time[0] == prevtime)
return(0);
prevtime = Time[0];
if(!IsTradeAllowed())
{
prevtime = Time[1];
return(0);
}
if (TimeHour(TimeCurrent())==ChasStart0 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart1 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart2 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart3 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart4 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart5 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart6 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart7 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart8 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart9 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart10 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart11 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart12 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart13 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart14 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart15 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart16 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart17 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart18 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart19 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart20 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart21 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart22 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStart23 && TimeMinute(TimeCurrent())==0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Step*Point,3,Ask-SL*Point,Ask+(Step+TP)*Point,"",12321,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,Bid+SL*Point,Bid-(Step+TP)*Point,"",12321,0,Red);
}
if (TimeHour(TimeCurrent())==ChasStop && TimeMinute(TimeCurrent())==0)
{
i=0;
total = OrdersTotal();
for(i = 0; i <= total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 12321)
{
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
if (OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
if (OrderType()>1)OrderDelete(OrderTicket());
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Здравствуйте
поэкспериментировал с 21hour немного изменил код и теперь два отложенных ордера выставляются каждый час, круглые сутки. ТП-15 Стоп-15 Получается хороший слив на тестери. Я и подумал, а если за место Стоповых одеров выставлять Лимитные одера то наверно будет прибыль. Но как поменять стоповые на Лимитные я не знаю так как в этом дели полный 0. Кто может помогите изменить.
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,0,Bid-(Step+TP)*Point,"",12321,0,Red);
Зачем велосипед изобретать. Уже есть советник e-News-Lucky$. Вот если бы добавил какое- нибудь условие по определению напраления открытия, тогда было бы что-то новое.
Если можешь добавь такое условие: если цена закрытия нового дня ниже цены закрытия предыдущего дня, то выставляем в короткую. Если цена закрытия нового дня выше цены закрытия
предыдущего дня, то выставляем в длинную. Если дневной бар внутренний, то ничего неставим. Время установки 00ч05м. Добавь стоплосс. Убери время закрытия.
Помоему такой прицип заложен в советнике на чемпионате Liliput. Там USDJPY, дневка. ТП-460, Стоплосс-180.
в личку загляни
Зачем велосипед изобретать. Уже есть советник e-News-Lucky$. Вот если бы добавил какое- нибудь условие по определению напраления открытия, тогда было бы что-то новое.
Если можешь добавь такое условие: если цена закрытия нового дня ниже цены закрытия предыдущего дня, то выставляем в короткую. Если цена закрытия нового дня выше цены закрытия
предыдущего дня, то выставляем в длинную. Если дневной бар внутренний, то ничего неставим. Время установки 00ч05м. Добавь стоплосс. Убери время закрытия.
Помоему такой прицип заложен в советнике на чемпионате Liliput. Там USDJPY, дневка. ТП-460, Стоплосс-180.
в личку загляни
Скажи почту, у меня нет аськи.
Здравствуйте
поэкспериментировал с 21hour немного изменил код и теперь два отложенных ордера выставляются каждый час, круглые сутки. ТП-15 Стоп-15 Получается хороший слив на тестери. Я и подумал, а если за место Стоповых одеров выставлять Лимитные одера то наверно будет прибыль. Но как поменять стоповые на Лимитные я не знаю так как в этом дели полный 0. Кто может помогите изменить.
OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Step*Point,3,0,Bid-(Step+TP)*Point,"",12321,0,Red);
Я-ж говорю полный 0.
Зачем велосипед изобретать. Уже есть советник e-News-Lucky$. Вот если бы добавил какое- нибудь условие по определению напраления открытия, тогда было бы что-то новое.
Если можешь добавь такое условие: если цена закрытия нового дня ниже цены закрытия предыдущего дня, то выставляем в короткую. Если цена закрытия нового дня выше цены закрытия
предыдущего дня, то выставляем в длинную. Если дневной бар внутренний, то ничего неставим. Время установки 00ч05м. Добавь стоплосс. Убери время закрытия.
Помоему такой прицип заложен в советнике на чемпионате Liliput. Там USDJPY, дневка. ТП-460, Стоплосс-180.
в личку загляни
Скажи почту, у меня нет аськи.
zma@mail.ru
Всем привет. Не могу понять почему ордера иногда закрываются в установленное время в текущие сутки, а иногда на следующие, я не имею виду переход
с пятнищи на понедельник. Это глюк или есть какое-то условие? Объясните кто в курсе
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
21hour:
Author: Maksim Zerkalov