Здравствуйте, уважаемые программисты! У меня на одном счету работает сеточник, на другом счету сделки копируются. Мне нужно чтобы первые 2 сделки не копировались, а только начиная с 3 колена. Советник копировщик прилагаю (в формате ех4.) Если есть время посмотрите. Очень надо. Заранее благодарен...
Для начала можно сделать так:АУУУ! Волшебники, вьі где? Спецьі помогите!!!
extern string TradeTime = "3:00-21:20";
if (!IsTradeTime()) return;
bool IsTradeTime()
{
if (TradeTime == "0:00-24:00") return (true);
if (TradeTime == "00:00-24:00") return (true);
datetime tm1, tm2;
string TI[];
split(TI, TradeTime, "-");
if (ArraySize(TI) != 2) return (false);
datetime tm0 = TimeCurrent();
tm1 = StrToTime(TimeToStr(tm0, TIME_DATE) + " " + TI[0]);
tm2 = StrToTime(TimeToStr(tm0, TIME_DATE) + " " + TI[1]);
bool isTm = false;
if (tm1 <= tm2)
isTm = isTm || (tm1 <= tm0 && tm0 < tm2);
else
isTm = isTm || (tm1 <= tm0 || tm0 < tm2);
return (isTm);
}
Попробуй этот.Хотя ТП нету уже все равно все ТП обнулило. 30 ордеров....)
Ничего не понял... При чем здесь временные ограничения? Мне нужно чтоб из серии ордеров не копировал первых два ордера.Для начала можно сделать так:
В начале в переменные
в условия открытия ордеровPHP:extern string TradeTime = "3:00-21:20";
(если время не подходит-курим)PHP:if (!IsTradeTime()) return;
И блок проверки времени внизу
Как-то такPHP:bool IsTradeTime() { if (TradeTime == "0:00-24:00") return (true); if (TradeTime == "00:00-24:00") return (true); datetime tm1, tm2; string TI[]; split(TI, TradeTime, "-"); if (ArraySize(TI) != 2) return (false); datetime tm0 = TimeCurrent(); tm1 = StrToTime(TimeToStr(tm0, TIME_DATE) + " " + TI[0]); tm2 = StrToTime(TimeToStr(tm0, TIME_DATE) + " " + TI[1]); bool isTm = false; if (tm1 <= tm2) isTm = isTm || (tm1 <= tm0 && tm0 < tm2); else isTm = isTm || (tm1 <= tm0 || tm0 < tm2); return (isTm); }
Это наверное в мой адрес.Ничего не понял... При чем здесь временные ограничения? Мне нужно чтоб из серии ордеров не копировал первых два ордера.
DLL не хватает. dynamicZone.dllУважаемые программисты!
Поправьте пожалуйста индикатор.
Не отображается в терминале. Вероятно из-за последних обновлений в МТ4.
DLL не хватает. dynamicZone.dll
Здравствуйте Дамы и Господа!
пожалуйста уберите из данного советника раздел ТП, оставьте только СЛ. этот советник выставляет ТП и СЛ на заданное колличество пунктов по всем открытым ордерам. мне нужен одинаковый СЛ, а ТП выставляю свой, но советник его обнуляет, так как выставляет и ТП тоже.
хотя пишет скрипт, но это советник. еще если можно компильнуть до нового билда.
может кому пригодится и в таком виде.
Спасибо. Но есть одна ошибка в строке split(TI, TradeTime, "-"); Что за функция split?Для начала можно сделать так:
В начале в переменные
в условия открытия ордеровPHP:extern string TradeTime = "3:00-21:20";
(если время не подходит-курим)PHP:if (!IsTradeTime()) return;
И блок проверки времени внизу
Как-то такPHP:bool IsTradeTime() { if (TradeTime == "0:00-24:00") return (true); if (TradeTime == "00:00-24:00") return (true); datetime tm1, tm2; string TI[]; split(TI, TradeTime, "-"); if (ArraySize(TI) != 2) return (false); datetime tm0 = TimeCurrent(); tm1 = StrToTime(TimeToStr(tm0, TIME_DATE) + " " + TI[0]); tm2 = StrToTime(TimeToStr(tm0, TIME_DATE) + " " + TI[1]); bool isTm = false; if (tm1 <= tm2) isTm = isTm || (tm1 <= tm0 && tm0 < tm2); else isTm = isTm || (tm1 <= tm0 || tm0 < tm2); return (isTm); }
Здравствуйте, уважаемые программисты! У меня на одном счету работает сеточник, на другом счету сделки копируются. Мне нужно чтобы первые 2 сделки не копировались, а только начиная с 3 колена. Советник копировщик прилагаю (в формате ех4.) Если есть время посмотрите. Очень надо. Заранее благодарен...
Чтобы посмотреть нужен формат mg4 иначе это уже не посмотреть а сломать....
всё открывает, только очень редко,в тестере за пять месяцев 30 сделокХорошый сов, но не открывает позицию
Разработчики, пожалуйста, проверьте
Как я понимаю split извлекает из TradeTime два числа от дефиса и присваивает их переменным TI[0]иTI[1] для сравнения с текущ временемЧто за функция split?
int IsTradeTime() {
if (StartHour < StopHour && TimeHour(TimeCurrent()) < StartHour || TimeHour(TimeCurrent()) >= StopHour) return (0);
if (StartHour > StopHour && (TimeHour(TimeCurrent()) < StopHour && TimeHour(TimeCurrent()) >= StopHour)) return (0);
if (StopHour == 0) StopHour = 24;
if (Hour() == StopHour - 1 && Minute() >= gi_136) return (0);
return (1);
}
http://forexsystemsru.com/833641-post9768.html