Наконец-то сподобился в начале этой недели сделать небольшой шажок в сторону модернизации робота. Начал с "головы" - переделал открытие по времени строго на первом тике, в начале бара. Неделя показала, что стохастик теперь работает без "косяков".
Вариантов открытия в начале бара много, но я выбрал наверное самый простой и, главное, понятный мне.
Было в 4 версии:int start()
{ ...
if ((IsTesting() == true && StrToTime("00:00")== TimeCurrent())
||(IsTesting()==false && MathMod(StrToTime("00:00"),86400)< MathMod(TimeCurrent(),86400) && iVolume(NULL,1440,0) > 1 && iVolume(NULL,1440,0) < 10))
{
//----------------------------------------------------------
if ( и еще ряд условий)
...// то открываем ордер:
OrderSend(Symbol(), OP_BUY, ЛотB, Ask, 3, iOpen(NULL, 1440, 0) + 2*Point - СЛB, iOpen(NULL, 1440, 0) + 2*Point + ТПB, "SS24", 1, 0);
Стало в 5 версии:int start()
{ ...
int TimCur = MathMod(TimeCurrent(),86400);
int TimOpen = MathMod(StrToTime("00:00"),86400);
if (TimCur >= TimOpen && TimCur - TimOpen < 15*60 && iVolume(NULL,1440,0) >= 1)
{
//----------------------------------------------------------
if ( и еще ряд условий)
...// то открываем ордер:
OrderSend(Symbol(), OP_BUY, Лот, Ask, 3, Ask - СЛB, Ask + ТПB, "SS24", 1, 0);
Наконец-то сподобился в начале этой недели сделать небольшой шажок в сторону модернизации робота. Начал с "головы" - переделал открытие по времени строго на первом тике, в начале бара. Неделя показала, что стохастик теперь работает без "косяков".
Вариантов открытия в начале бара много, но я выбрал наверное самый простой и, главное, понятный мне.
[b]Было в 4 версии:[/b]
int start()
{ ...
if ((IsTesting() == true && StrToTime("00:00")== TimeCurrent())
||(IsTesting()==false && MathMod(StrToTime("00:00"),86400)< MathMod(TimeCurrent(),86400) && iVolume(NULL,1440,0) > 1 && iVolume(NULL,1440,0) < 10))
{
//----------------------------------------------------------
if ( и еще ряд условий)
...// то открываем ордер:
OrderSend(Symbol(), OP_BUY, ЛотB, Ask, 3, iOpen(NULL, 1440, 0) + 2*Point - СЛB, iOpen(NULL, 1440, 0) + 2*Point + ТПB, "SS24", 1, 0);
[b]Стало в 5 версии:[/b]
int start()
{ ...
int TimCur = MathMod(TimeCurrent(),86400);
int TimOpen = MathMod(StrToTime("00:00"),86400);
if (TimCur >= TimOpen && TimCur - TimOpen < 15*60 && iVolume(NULL,1440,0) >= 1)
{
//----------------------------------------------------------
if ( и еще ряд условий)
...// то открываем ордер:
OrderSend(Symbol(), OP_BUY, Лот, Ask, 3, Ask - СЛB, Ask + ТПB, "SS24", 1, 0);
- Вложения
-
- EURUSD-SS24.5.mq4
- 5 версия
- (3.83 KiB) Скачиваний: 5