Ваши вопросы по языку MQL4

Bullra

Новичок
Elvis Burunduk, если такой опыт, то зачем менять шило на мыло? Спрос на программистов только растет, понимая логику, освоить новые языки не проблема. К тому же в отличии от торговли и спекуляций, программирование интересное, увлекательное занятие развивающее память, логику, внимание, смекалку. Просто после знакомства с Явой немного сожалею о том, что выбрал не тот путь. Хотя конечно догадываюсь, что для вас, это может-быть всего лишь спорт.
 

Elvis Burunduk

Элитный участник
Elvis Burunduk, если такой опыт, то зачем менять шило на мыло? .

Не совсем понятен вопрос.
Что на что менять, любой язык в голове лежит на своей полке, там на полке в башке еще и Делфи есть, если чё :) не говоря про бейсик...

Мои посты потерли уже, спасибо уже за то, что в баню не отправили вместе с Ансолом , я там матом ответил...
 
Последнее редактирование:

vlad_123

Местный знаток
Что ж, давай проверим, что и как.
Вы бы еще проверили, что мучаете один и тот же тип MQL - советник/скрипт/индикатор.
Есть подозрение, что вопреки кошерной логике, что-то из них работает против шерсти.
 

mobidik

-----
Вы бы еще проверили, что мучаете один и тот же тип MQL - советник/скрипт/индикатор.
Есть подозрение, что вопреки кошерной логике, что-то из них работает против шерсти.

Или есть какой-то глюк. На предыдущей версии билда у меня стал сбоить один индикатор, написанный пару лет назад. Что только не делал и как не крутил, что бы избавиться от глюка - без результатно. Обновился в очередной раз билд МТ и все встало на свои места. Так, что, все возможно...
 

Elvis Burunduk

Элитный участник
Или есть какой-то глюк. На предыдущей версии билда у меня стал сбоить один индикатор, написанный пару лет назад. Что только не делал и как не крутил, что бы избавиться от глюка - без результатно. Обновился в очередной раз билд МТ и все встало на свои места. Так, что, все возможно...

Да, возможно, в гонке билдов метаки что то меняют на ходу, толком не проверив, а мы получаем ошибки на своей стороне.
Да еще ссоримся между собой из-за них. :) :D
 

vladradon

Программист
Меня прикалывает: на Робофорексе на парах типа AUDNZD, NZDCAD стоп уровень 100 пипсов и это значит, что если ордера стоят на расстоянии 20п (200 пипсов), то ни тейкпрофит, ни стоплосс стандартный не воткнешь на дистанции +100 пипсов от верхнего и -100 пипсов от нижнего - итого 400 пипсов (40 пунктов) зона запрета выставления стандартных ТП и СЛ. А если это сетка с небольшим шагом, то вообще можно забыть - только вручную закрывать или виртуальные использовать, которые без терминала и связи не сработают. Я просто к тому, чтобы те, кто читают ветку, понимали, что скальперы (совы) и сеточники или мартины не на всех парах смогут даже корректно работать и только из-за брокера и его установок будет слив (сов тупо не сможет выставить ТП и СЛ). Это же касается и тралов, которые используют стандартные ТП иСЛ. :disappointed: (Это для новичков, конечно)
 

vlad_123

Местный знаток
Меня прикалывает: на Робофорексе на парах типа AUDNZD, NZDCAD стоп уровень 100 пипсов

На форекс4ю на GBPCHF StopLevel пунктов 170-180, у меня сеточник на ночных/утренних расколбасах бывает не осиливает всунуться ;)
Хорошо, он умный - либо закрывает прибыльный с TP=0, либо в конце концов выставит TP сетке, если она пошла против тренда.
 

vladradon

Программист
Случайно нашел еще один небольшой глюк: горизонтальная ценовая линия (OBJ_HLINE), когда наводишь на нее курсор мыши, показывает не ту цену (отличие в несколько пипсов и чем старше ТФ, тем больше разница, по моим наблюдениям), по которой она выставлена, и если линия имеет свойство "расположение на заднем плане" (OBJPROP_BACK true) и на шкале цен справа на графике не выводится истинное значение цены линии, то приходится его выводить дополнительным текстом рядом с линией, чтобы знать точное значение. При этом все внутренние функции, связанные с ценой линии (виртуальный ТП или СЛ), работают, конечно, по правильной цене, если ее считывать, как свойство объекта.:)
 

forexOrx

Новичок форума
Ребята, есть у кого-нибудь из вас напсаная функция мартингейла?
А то моя что-то делает не так.
Если первая сделка в минус, бот перестает работать (в тестере). Размер депо не иимеет значение.
Спасибо!
 

vladradon

Программист
Ребята, есть у кого-нибудь из вас напсаная функция мартингейла?
Какой мартин интересует: откатный (на возврат цены) или трендовый (перевертыш). В любом случае это не функция, а набор функций в большинстве вариантов. Я много мартинов написал, но пока ни разу не встречал какую-то прогу, которая работала бы как отдельная функция, которой нужны только входные данные...Обычно мартина добавляют к основной программе, как дополнительный функционал и вариантов алгоритмов мартина довольно много. Короче, я к тому, что проще дописать мартина к основному алгоритму сова (вписать доп функции и прописать управление ими в основной код). Может у кого-то есть в виде отдельной полноценной функции, конечно...
 

forexOrx

Новичок форума
Какой мартин интересует: откатный (на возврат цены) или трендовый (перевертыш). ...

Спасибо за ответ.
Мне нужно, чтобы после убыточной сделки лот увеличивался. Сколько убыточных сделок, столько увеличений лота.
А после прибыльной сделки возвращался к исходному значению.
 

vladradon

Программист
Мне нужно, чтобы после убыточной сделки лот увеличивался. Сколько убыточных сделок, столько увеличений лота.
А после прибыльной сделки возвращался к исходному значению.
Если под убыточной сделкой предполагается предварительно закрытый ордер, то это получается трендовый (меняющий направление). Если нет (не менять направление), то шансов вылезти из просадки за счет мартина сильно уменьшается: ордер уже закрылся и мы потеряли часть средств и доступной маржи (соответственно), а нам нужно открыть новый ордер с увеличенным лотом (в стандартном мартине), который тоже потребует запас по марже и будет действовать относительно уже уменьшенных средств после закрытия предыдущего ордера. А если предыдущий не закрывать, то возврат цены на небольшой скачок в плюс по ордерам, может все закрыть (все ордера) и выйти в плюс.
 

Levis_Rock

Активный участник
Ребят подскажите, строчка if (Hour()<8 || Hour()>20) return(0);
Это чтобы сов торговал с 8 до 20, что изменить, что бы наоборот сов не торговал в это время? И будет ли работать, если я укажу несколько строк с разным временем?
 

vladradon

Программист
if((Hour(TimeCurrent()))>=8 && Minute(TimeCurrent())>=0)) && (Hour(TimeCurrent())<20 && Minute(TimeCurrent())<=59)
{
///
}
 
Последнее редактирование:

vladradon

Программист
Без обид - я просто предложил вариант решения ситуации - это ни в коем случае не тот код, который можно тупо прописать в своем сове! Я хотел обозначить те моменты и как их использовать, которые нужно учитывать - разделять временные промежутки до полуночи и после.
 

Levis_Rock

Активный участник
Без обид - я просто предложил вариант решения ситуации - это ни в коем случае не тот код, который можно тупо прописать в своем сове! Я хотел обозначить те моменты и как их использовать, которые нужно учитывать - разделять временные промежутки до полуночи и после.

Всё ок, сделал так, работает

int start()
{
if (Hour()>=5 && Hour()<6) return(0);
if (Hour()>=6 && Hour()<7) return(0);
if (Hour()>=13 && Hour()<14) return(0);
if (Hour()>=18 && Hour()<19) return(0);
 

Elvis Burunduk

Элитный участник
Мужики, ну что вы как дети, давно существует код, который работает. Ну только если не нужны минуты. :D
Распознает переход через полночь...

В начале объявляем переменные :

extern int Start = 0; // Время старта открытия ордеров
extern int Stop = 18; // Время стопа открытия ордеров

потом в start пихаем:

if (Start < Stop)
{
if (TimeHour(TimeCurrent()) < Start || TimeHour(TimeCurrent()) >= Stop) return(0);
}

if (Start > Stop)
{
if (TimeHour(TimeCurrent()) < Start && TimeHour(TimeCurrent()) >= Stop) return(0);
}
 

Levis_Rock

Активный участник
Блин, в этом всём есть один ньюанс.. Всё же нужен код, чтобы сов именно ордера не открывал в это время, но работал, т к сделки не закроются советником, которые были открыты до указанного времени..
 

Elvis Burunduk

Элитный участник
Блин, в этом всём есть один ньюанс.. Всё же нужен код, чтобы сов именно ордера не открывал в это время, но работал, т к сделки не закроются советником, которые были открыты до указанного времени..

Вот ты смешной... :D :D :D
Вставь тогда этот код перед кодом открытия ордера, оно будет посылать на ... :D в отдых, пока время не наступит.
 
Верх