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

vladradon

Программист
Спасибо, если когда-то будет это интересно, тогда и посмотрю, проверю.
Привет! Я процитировал твое последнее сообщение, чтобы именно ты обратил внимание: это по 5-ке - мой новый сов нормально работает на Робофорексе (на 5-ом терминале), но при попытке запуска на Альпари терминал съедает все свободное место на диске С. Это на разных счетах и только на Альпари. Не в курсе, что за глюк?
 

eevviill2

Местный знаток
Или вычислить или запомнить лот последнего в серии ордера и от него плясать - результат примерно тот же, только расчет разный...
Запомнить можно сразу при открытии ордера, либо прогнать функцию и вычислить последний ордер на данном счете это совсем не сложно...
:D
Ану вычисли 3-е колено с коефом 1.4 и лотом 0.01
0.01?
:D
 

vladradon

Программист
Ану вычисли 3-е колено с коефом 1.4 и лотом 0.01
0.01?
Ты же знаешь мое к тебе "отношение" и при минимальных лотах идет проверка на минимальность и если есть возможность по стратегии добавить лот, не вопрос. Но только если есть такая возможность! Я снова опустил тебя в твой подвал или еще что-то нужно?
 

eevviill2

Местный знаток
Ты же знаешь мое к тебе "отношение" и при минимальных лотах идет проверка на минимальность и если есть возможность по стратегии добавить лот, не вопрос. Но только если есть такая возможность! Я снова опустил тебя в твой подвал или еще что-то нужно?
Не, ты просто опять натупил:D
 

AlexeyVik

Программист mql4 mql5
Привет! Я процитировал твое последнее сообщение, чтобы именно ты обратил внимание: это по 5-ке - мой новый сов нормально работает на Робофорексе (на 5-ом терминале), но при попытке запуска на Альпари терминал съедает все свободное место на диске С. Это на разных счетах и только на Альпари. Не в курсе, что за глюк?
Привет.
Без кода сказать что-то вразумительное совсем невозможно. Может принтами забивать лог до одури. Может ещё чего-то.
 

vladradon

Программист
Привет.
Без кода сказать что-то вразумительное совсем невозможно. Может принтами забивать лог до одури. Может ещё чего-то.
В коде нет каких-то ухищрений - терминал сам задает загрузку истории на автомате.
Я поделюсь кодом при личном общении - не хочу. чтобы он без моего ведома распространялся.
 
Последнее редактирование:

Black54

Прохожий
Доброе Утро.Подскажите пожалуйста :Нужно перебрать цену закрытия бара на М15 от начала дня до текущего.Идея такая Советник должен после 10 часов по терминал открыть два ордера равным лотом с ТP и SL при достижение ценового уровня Если Бар на М15 закроется ниже уровня.Если цена закрытия ниже уровня открываем 2 Ордера Sell.
 

Ugar

Гуру форума
Доброе Утро.Подскажите пожалуйста :Нужно перебрать цену закрытия бара на М15 от начала дня до текущего.
Циклом от текущего бара к началу дня
Код:
Expand Collapse Copy
datetime TimeDay=iTime(NULL,PERIOD_D1,0);
for(int i=0; i<Bars; i++)
{


//Если досчитал-прервать цикл
if(iTime(NULL,PERIOD_M15,i)<=TimeDay)break;
  }
Циклом от начала дня к текущему бару
Код:
Expand Collapse Copy
datetime TimeDay=iTime(NULL,PERIOD_D1,0);
int BarM15StartDay=iBarShift(NULL,PERIOD_M15,TimeDay);
for(int i=BarM15StartDay; i>=0; i--)
{


}
 

AlexeyVik

Программист mql4 mql5
Доброе Утро.Подскажите пожалуйста :Нужно перебрать цену закрытия бара на М15 от начала дня до текущего.Идея такая Советник должен после 10 часов по терминал открыть два ордера равным лотом с ТP и SL при достижение ценового уровня Если Бар на М15 закроется ниже уровня.Если цена закрытия ниже уровня открываем 2 Ордера Sell.
Второй вариант
Код:
Expand Collapse Copy
int  CopyClose(
   string           symbol_name,       // имя символа
   ENUM_TIMEFRAMES  timeframe,         // период
   datetime         start_time,        // [COLOR=Red][B]с какой даты[/B][/COLOR]
   datetime         stop_time,         // [COLOR=red][B]по какую дату[/B][/COLOR]
   double           close_array[]      // массив для копирования цен закрытия
   );
Или просто по достижении указанного времени взять цену закрытия первого бара.
Код:
Expand Collapse Copy
int  CopyClose(
   string           symbol_name,       // имя символа
   ENUM_TIMEFRAMES  timeframe,         // период
   int              start_pos,         // [COLOR=red][B]откуда начнем 1[/B][/COLOR]
   int              count,             // [COLOR=red][B]сколько копируем 1[/B][/COLOR]
   double           close_array[]      // массив для копирования цен закрытия
   );
 

Nart60

Активный участник
Код советника выложен, прошу дописать код о выставлении локирующих 3-х ордеров, постепенно, на определенном расстоянии друг от друга (30п, 20п. 10п по мере продвижения цены против наших позиций, открытых этим советником в виде сетки по мартину). первый ордер в объеме 70% от общего объема противоположно сетки, второй 20% и последний компенсирующий весь убыток 10 %. Если кто умеет прошу вписать этот код в данный советник, который хорошо работает до появления длинных трендов в одну сторону. Желательно, чтобы параметры локирующего ордера советника можно было бы менять в настройках по усмотрению трейдера.
 

Вложения

  • Scalp.mq4
    Scalp.mq4
    132,1 КБ · Просмотры: 16

idler

Новичок форума
Уважаемые мэтры, подскажите пожалуйста!

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

Nart60

Активный участник
Код советника выложен, прошу дописать код о выставлении локирующих 3-х ордеров, постепенно, на определенном расстоянии друг от друга (30п, 20п. 10п по мере продвижения цены против наших позиций, открытых этим советником в виде сетки по мартину). первый ордер в объеме 70% от общего объема противоположно сетки, второй 20% и последний компенсирующий весь убыток 10 %. Если кто умеет прошу вписать этот код в данный советник, который хорошо работает до появления длинных трендов в одну сторону. Желательно, чтобы параметры локирующего ордера советника можно было бы менять в настройках по усмотрению трейдера.

Сначала

if(OrderSelect(10, SELECT_BY_POS)==true)
Print("open price for the order 10 ",OrderOpenPrice());
else
Print("OrderSelect() вернул ошибку - ",GetLastError());
 

MrGreen86

Гуру форума
Есть индикатор который рисует гистограмму (только положительные значения) хотелось бы раскрасить в соответствии со свечами, как сделать через отдельный буфер понимаю, но хотелось бы услышать ответ на вопрос:
существует ли возможность использования двух цветов в одном буфере?

к сожалению нет. в мт5 есть возможность цвет задавать через второй буфер. т.е. один буфер дает значения линии, второй задает ее цвета.
в МТ4 такой возможности нет вовсе. по этому реализуется через 2 буфера.

Подозреваю что вам нужно чтобы значения индикатора можно было брать из одного буфера, верно? сделайте еще один буфер, невидимый (DRAW_NONE). В него записывайте значения гистограммы.
 

idler

Новичок форума
Спасибо MrGreen86!

Поставили точку в моих поисках)
Да, все именно так, на данных из первого буфера висит машка, значит кроме них сделаю еще два буфера под разные цвета.
Еще раз спасибо за подсказку.
 

Ugar

Гуру форума
Привет! Я процитировал твое последнее сообщение, чтобы именно ты обратил внимание: это по 5-ке - мой новый сов нормально работает на Робофорексе (на 5-ом терминале), но при попытке запуска на Альпари терминал съедает все свободное место на диске С. Это на разных счетах и только на Альпари. Не в курсе, что за глюк?
На МТ4 тестер создаёт здоровенный fxt файл с тиками и по нему тестирует. В МТ5 тестер при тестировании на тиках создаёт кучу файлов поменьше, находятся они там Файл -> Открыть каталог данных \Tester\Agent-127.0.0.1-3000\temp\
У разных ДЦ назные поставщики данных. Разные тиковые объёмы. Чем больше тиковые объёмы, тем больше тиков смоделирует тестер, тем больше будет объём файлов в папке. Чем больше символов задействуется в советнике, тем больше будет объём файлов в папке. Чем длиннее временной промежуток тестирования, тем больше будет объём файлов в папке. При оптимизации с использованием многоядерного процессора будут задействованы ещё и папки других агентов с портами 3001, 3002... В зависимости от количества ядер процессора задействованных под агенты оптимизации.
Возможно, при оптимизации, стоит использовать более грубый метод "OHLC на М1". Оптимизация будет быстрее и тиковые файлы не будут создаваться и забивать диск.
А терминал от Альпари тот же что и у других. Можно вообще один терминал держать просто добавить в него разных брокеров и ДЦ. Он получит настройки и историю от сервера соответствующего брокера.
 
Последнее редактирование:

vladradon

Программист
На МТ4 тестер создаёт здоровенный fxt файл с тиками и по нему тестирует. В МТ5 тестер при тестировании на тиках создаёт кучу файлов поменьше, находятся они там Файл -> Открыть каталог данных \Tester\Agent-127.0.0.1-3000\temp\
У разных ДЦ назные поставщики данных. Разные тиковые объёмы. Чем больше тиковые объёмы, тем больше тиков смоделирует тестер, тем больше будет объём файлов в папке. Чем больше символов задействуется в советнике, тем больше будет объём файлов в папке. Чем длиннее временной промежуток тестирования, тем больше будет объём файлов в папке. При оптимизации с использованием многоядерного процессора будут задействованы ещё и папки других агентов с портами 3001, 3002... В зависимости от количества ядер процессора задействованных под агенты оптимизации.
Возможно, при оптимизации, стоит использовать более грубый метод "OHLC на М1". Оптимизация будет быстрее и тиковые файлы не будут создаваться и забивать диск.
А терминал от Альпари тот же что и у других. Можно вообще один терминал держать просто добавить в него разных брокеров и ДЦ. Он получит настройки и историю от сервера соответствующего брокера.
Это все теория - практика, увы, показывает другое.:nda:
 
  • Like
Реакции: Ugar

vladradon

Программист
Что именно? Папка \Tester\Agent-127.0.0.1-3000\temp\ при тестировании на тиках пустая?
Когда я запускаю Альпаришный терминал на тестирование, загрузка винта идет такая, что я больше не могу пользоваться компом - не могу запустить ни одну прогу из-за постоянного обращения к винту. Но все прекращается после остановки теста и все свободное до теста пространство восстанавливается. Это настройки от брокера по-умолчанию, которые на Альпари глючат, хоть обновление на 5-х терминалах происходит одновременно.
 
Верх