SimpleDailyRangeBreakExpert - страница 11

 

Я спрашиваю себя, почему это значение "3600" добавляется к времени начала. Это делает этот сдвиг времени непонятным для меня. Может быть, Igorad сможет помочь.

string TimeTrade = "00:00";

StartTime = StrToTime(TimeTrade) + TimeShift*3600;

if(CurTime() >= StartTime && CurTime() <= StartTime+3600)

{

if ( OrderOpenDate() < StrToTime(TimeToStr( StartTime,TIME_DATE)))

{

if( ScanTrades()>0 && !BuyInTrade && !SellInTrade) PendOrdDel();

Today = StrToTime(TimeToStr( StartTime,TIME_DATE));

if (Today != PrevDay )

{ DaysInTrade = DaysInTrade+1;

//Print(" Days=",DaysInTrade,"Today=",TimeToStr(Today,TIME_DATE),"PrevDay=", TimeToStr(PrevDay,TIME_DATE)) ;

}

if( TradePeriod > 0 )CloseOrdbyTime();

}

if(ScanTrades()<1 && Today != PrevDay )

{

spread= MarketInfo(Symbol(),MODE_SPREAD)*Point;

digit = MarketInfo(Symbol(),MODE_DIGITS);

Lotsi = MoneyManagement ( MM, Lots, MMRisk, LossMax);

//if (TrailingStop > 0) InitialStop=true;

ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);

open = rates_h1[0][1];

high=0; low=10000000;

for (i=24;i>=1;i--)

{

high = MathMax( high, rates_h1[3]);

low = MathMin( low , rates_h1[2]);

}

range =(high-low);

if ( Monday == 1 ) if(DayOfWeek()==1){BuyOrdOpen(); SellOrdOpen();}

if ( Tuesday == 1 ) if(DayOfWeek()==2){BuyOrdOpen(); SellOrdOpen();}

if ( Wednesday== 1 ) if(DayOfWeek()==3){BuyOrdOpen(); SellOrdOpen();}

if ( Thursday == 1 ) if(DayOfWeek()==4){BuyOrdOpen(); SellOrdOpen();}

if ( Friday == 1 ) if(DayOfWeek()==5){BuyOrdOpen(); SellOrdOpen();}

DaysInTrade = 0;

}

}
 

Это значение 3600, похоже, является преобразованием часов в секунды. Для меня это означает, что я начинаю работу в 09:00 по времени брокера (gmt+0). моя проблема в другом.

 

Привет, Флайтокс,

Я посмотрю на этот советник сейчас (обычно я принимаю заявления раз в день, публикуя что-то интересное). Я открою этот советник с помощью metaEditor, чтобы посмотреть:

- может быть этот советник использует какой-то файл Tracert;

- или может быть некоторые пары, указанные в коде как EURUSD вместо EURUSDm для IBFX.

В любом случае, если вы установили время на 9, то советник должен закрыть все прибыльные ордера в 9 и открыть новые отложенные ордера (также в 9).

Я посмотрю на это сейчас.

 

Я закрыл других советников на том же счете (TPE, TS,), и SBS разместил окончательные отложенные ордера в 9:00 (время брокера). Советники, которые я удалил, были с разными магическими номерами. Существует ли какая-либо известная несовместимость между SBS123 и другими советниками?

 

Я заглянул в код этой версии 1.23 и не увидел никакой проблемы: этот советник не использует никаких файлов извне и никаких индикаторов. Значит, он должен работать с IBFX.

Я использую этот советник/настройки (настройки по умолчанию (см. этот пост). Это настройка для брокера GMT+3. И у меня EURUSD и GBPUSD с TimeShift=9 (09 утра по времени сервера LiteForex, которое сейчас GMT+3), USDJPY с TimeShift=10 и USDCHF с TimeShift=7. Это для GMT+3.

Если IBFX имеет GMT+0, то это может быть следующее:

EURUSD и GBPUSD с TimeShift=6 и так далее.

 

Здравствуйте ND,

Вы видели мое предыдущее сообщение о возможном конфликте, когда другие советники находятся на том же MT4 (на том же счете).

 
Flytox:
Я закрыл другие советники на том же счете (TPE, TS,) и SBS выставил окончательные отложенные ордера в 9:00 (время брокера). Советники, которые я удалил, были с разными магическими числами. Есть ли какая-нибудь известная несовместимость между SBS123 и другими советниками?

Несовместимость? Нет.

Это может быть случай, когда 2 эксперта хотят изменить ордер, или закрыть/открыть ордер точно в одно и то же время в единицах и секундах. Но это не обычный случай. В основном, невозможно использовать более 3 советников в одной копии Metatrader из-за этого (советники могут "перебивать" друг друга). 1 или 2, или может быть 3 советника в одной копии Metatrader могут быть в порядке, но это также связано с таймфреймами: например, мы можем использовать какой-то скальпер на M5 вместе с советником, работающим на таймфрейме D1 и так далее. Потому что Metatrader как программа не может делать 2 вещи одновременно: не может модифицировать один ордер и удалить другой отложенный ордер точно в одно и то же время в минутах/секундах.

В связи с этим в SBS_V1.23 советник будет пытаться удалить отложенный ордер и открыть новый много раз, пока это не будет сделано. В SBS_V1.21 тоже самое: если metatrader не может удалить отложенный ордер сейчас, то Metatrader будет пытаться сделать это через 1 минуту, если не получается - через 1 минуту еще раз, пока работа не будет сделана. Так что я думаю, что никакой несовместимости нет.

Похожими советниками являются SBS_v1.21 и TPE EA.

Менее рискованный - SBS_v1.21, более рискованный - TPE и более рискованный, чем TPE - SBS_v1.23 (просто сортировка по риску для трейдеров в зависимости от размера стартового депозита).

Если вы используете разные магические числа для каждого советника, это не приведет к конфликту.

Конечно, если вы тестируете 5 советников в одной копии Metatrader, то может быть все, даже с разными магическими числами. 5 советников в одном Metatrader - это слишком много.

Файлы:
sbs121.zip  18 kb
tpe12.zip  17 kb
 

Спасибо за ваши ответы ND.

 

Пожалуйста, найдите обновленные ведомости для 2 версии.

Смотрите этот пост и excel-файл для ведомостей с начала тестового периода https://www.mql5.com/en/forum/173383/page79.

Файлы:
sbs121_1.zip  18 kb
sbs123.zip  50 kb
 

Пожалуйста, найдите обновленное заявление для версии SBS 1.23.

Файлы:
sbs23.zip  35 kb
Причина обращения: