Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#201



double array1[][6];
ArrayCopyRates(array1,"EURUSD", PERIOD_H1);
Print("Current bar ",TimeToStr(array1[0][0]),"Open", array1[0][1]);



Не, надо как раз с файла .hst и передать в архив данные лоу, хейдж, макс, мин.... с графика можно забрать, только не в этой ситуации


посмотри справку на тему OrderSelect с параметром MODE_HISTORY
#202


Не, надо как раз с файла .hst и передать в архив данные лоу, хейдж, макс, мин.... с графика можно забрать, только не в этой ситуации


Грааль строишь? :)

Видел такое, но под рукой нет. Обращаешься к .hst файлу как обычному файлу данных и читаешь, что надо. Посмотри скрипты, которые генерируют .hst файлы, там видно как они строятся.
#203

парни, еще раз обращаюсь. Нужна помощь профи! Павел, большое спасибо за новый урок!!!! Завтра начну разбирать его, ждем новых новинок!
зона - это когда есть МА, и +- 10 пп в стороны.
Моя проблема: нужно, что бы как только цена подходила к *зоне* сова открывала покупку и отложку на продажу на заданное количество пунктов. У меня толком не выходит написать функцию.
Вот моя функция

Цитата


PriceMA = iMA(Symbol(), 0, period, 0, MODE_SMMA, PRICE_CLOSE, 0) + Step * Point;
PriceMA1 = iMA(Symbol(), 0, period, 0, MODE_SMMA, PRICE_CLOSE, 0) - Step * Point;


Одна из них для условие на покупку, другая на продажу. К индикатору нужно добавить область в размере 10 пп в обе стороны (в обе стороны у меня не получается, потому отдельные функции) . Кто то может отредактировать функцию? Буду очень благодарен!!!
#204


парни, еще раз обращаюсь. Нужна помощь профи! Павел, большое спасибо за новый урок!!!! Завтра начну разбирать его, ждем новых новинок!
зона - это когда есть МА, и +- 10 пп в стороны.
Моя проблема: нужно, что бы как только цена подходила к *зоне* сова открывала покупку и отложку на продажу на заданное количество пунктов. У меня толком не выходит написать функцию.
Вот моя функция

Цитата


PriceMA = iMA(Symbol(), 0, period, 0, MODE_SMMA, PRICE_CLOSE, 0) + Step * Point;
PriceMA1 = iMA(Symbol(), 0, period, 0, MODE_SMMA, PRICE_CLOSE, 0) - Step * Point;


Одна из них для условие на покупку, другая на продажу. К индикатору нужно добавить область в размере 10 пп в обе стороны (в обе стороны у меня не получается, потому отдельные функции) . Кто то может отредактировать функцию? Буду очень благодарен!!!

>К индикатору нужно добавить область в размере 10 пп в обе стороны
Ты чет написал для меня например не понятное, одно число не может быть одновременно больше и меньше значения iMA. Поэтому у тебя две "функции". Дальше можно через оператор IF привести к выполнению желаемого действия.
#205

Помогите исправить ошибку, у меня не выходит(((

123qqq.mq417 скач.

#206

Почему может не работать советник с трейлингом на золоте, если на других парах он работал?

И как его допилить, чтобы он автоматом подхватывал все открытые ордена на графике, на котором установлен?

TrailingRatchetB.mq419 скач.

Изменено 30 июля, 2013 пользователем Cerebellum

#207

Добрый день сильно не бить x_x не могу сообразить, как вытащить угол наклона ТМА из индикатора?

Изменено 30 июля, 2013 пользователем Perovskikh

#208


Почему может не работать советник с трейлингом на золоте, если на других парах он работал?

И как его допилить, чтобы он автоматом подхватывал все открытые ордена на графике, на котором установлен?


что бы тралил все ордера на графике, то наверное, нужно убрать Магик в советнике. Вписать "0" и все.
#209


Помогите исправить ошибку, у меня не выходит(((


в чем ошибка то?
для начала код не компилируется, выдает ошибку
со скобками напутал вот здесь
void Trailing()
{
for ( int i=0; i


а надо так
void Trailing()
{
for ( int i=0; i {
#210



Помогите исправить ошибку, у меня не выходит(((


в чем ошибка то?
для начала код не компилируется, выдает ошибку
со скобками напутал вот здесь
void Trailing()
{
for ( int i=0; i


а надо так
void Trailing()
{
for ( int i=0; i {



большое спасибо! да, именно здесь я накосячил. Не заметил скобки,(((
#211

Здравствуйте!
Подскажите, как сделать, чтобы одним из условий открытия ордера было изменение цвета свечей Heiken Ashi. Там во внешних переменных только цвета, задействовано четыре буфера, ничего толкового не выходит.

И еще: например сделка закрылась по SL. Как в советнике сделать TimeOut (в минутах, часах, барах -- неважно), чтобы какое-то время он ничего не делал, по истечении заданного времени опять продолжал работу.

С уважением.

#212


Как в советнике сделать TimeOut


по-моему для этого есть функция Sleep
#213


Почему может не работать советник с трейлингом на золоте, если на других парах он работал?

И как его допилить, чтобы он автоматом подхватывал все открытые ордена на графике, на котором установлен?


1. Некорректно выставленные уровни, высокая волатильность, нет нормализации цены в коде...
2.
Цитата

При запуске эксперта ему необходимо указать уникальный номер (тикет) открытой позиции (iTicket)


В коде всё завязано на тикет (можно работать только с одним ордером, номер которого вбил при старте).
Т.е., придётся всё переписывать.
#214


В коде всё завязано на тикет


В том то и дело. А тикет стоит в параметрах функции. Я еще слабоват в MQL, с параметрами работать не умею.
Но ведь можно вставить кусок кода для перебора открытых позиций и передать тикет в фунцию трала?
#215
Cerebellum, с этим понятно.

А как написать: if(ордер закрылся по SL) Sleep();
void Sleep( int milliseconds) .

Вот что неясно.

#216


Но ведь можно вставить кусок кода для перебора открытых позиций и передать тикет в фунцию трала?

Да. Так, наверно, проще.
Должен тралить все ордера про символу:

TrailingRatchetB_02.mq442 скач.

#217


Cerebellum, с этим понятно.

А как написать: if(ордер закрылся по SL) Sleep();
void Sleep( int milliseconds) .

Вот что неясно.



как вариант: при использовании виртуального СЛ, когда сов сам закрывает ордер, то передавать управление соответствующей функции.
вар 2: перебрать закрытые ордера, найти последний, определить его тип, сравнить цену открытия с ценой закрытия - поймешь закрылся по ТП или по СЛ, если по СЛ - сохраняешь его тикет и вкл. паузу, тикет нужно сохранить что бы повторно не включать паузу. Но я бы сделал паузу привязав к торговым условиям - после открытия ордера сов не открывает больше по данному условию новых ордеров(если открытый до этого закрылся по стопу) пока цена допустим не закроется опять выше\ниже МА или твои условия. з.ы. в программировании 1 месяц, так что могу глубоко заблуждаться.
#218


Должен тралить все ордера про символу:


Попробую. А что с iTicket делать? Убрать из внешних переменных или как?
#219
Cerebellum
Цитата

Попробую. А что с iTicket делать? Убрать из внешних переменных или как?

Можно ничего не делать. Если мешает, объявить как обычную...
#220


Должен тралить все ордера про символу:


Не тралит. Закрывает ордер на первом тейке вместо перевода в безубыток.
#221


Не тралит. Закрывает ордер на первом тейке вместо перевода в безубыток.


Проверил. Тралит.
Поставил: iPf_level_1 = 100, iPf_level_2 = 200, iPf_level_3 = 300 (пятизнак) - всё делает правильно.
#222

Ребят кто может написать советник по т.с Golden boy?

#223


Проверил. Тралит.


Может я чего с пунктами напутал. Я на золоте пытаюсь тралить. Получается нужно тейк в новых пунктах ставить?
#224


Может я чего с пунктами напутал. Я на золоте пытаюсь тралить. Получается нужно тейк в новых пунктах ставить?


Советник не проверяет Digits. Если брокер пятизнак, нужно множить на 10.
Если на золоте два знака после запятой и спред пунктов 50, то профит 500, 1000, 1500 (можно и поменьше, конечно)
#225

Привет всем!
Недавно начал изучать MQ4. Понравились Ваши уроки. ДОХОДЧИВО!!! Спасибо!
Есть такая задача. У меня есть советник в который я хочу добавить долив ордеров по тренду.
Сделал просто! При достижении трала, пунктов включения трала в настройках, меняется магик, и сова автоматически выставляет новый ордер, так как изменился магик.
А ордер с первым магиком тралится дальше. И так идет долив пока идет тренд, ордера собираются и при откате закрываются согласно пункта TralStop.
А оставшийся ордер начинает мартинится!
Работа в два окна Long Short.
Сову заказывал у программиста, но он исчез похоже с концами.
Надо исправить некоторые недочеты.
Например.
1. При открытии следующего ордера он начинает тралить свой ордер, а так же все в том же направлении (ручные и с другими магиками от другой совы),
Это я исправил, но теперь трал не тянется за ценой а перескакивает при открытии очередного ордера. (может быть так оно и лучше).
Как зделать что бы трал тянулся за ценой?

2. После выходных, при открытии рынка, Он начинает с магика который в настройках, а надо что бы он подхватывал тот что остался на выходные.

Вот кусок из совы:

if(tip==0 && tp1!=tp && mn1==magic1 && ko1>1)
OrderModify(ticket1,price1,OrderStopLoss(),tp1,0);

if(tip==1 && tp2!=tp && mn1==magic2 && ko2>1)
OrderModify(ticket1,price1,OrderStopLoss(),tp2,0);

if (UseTral)
{
if(tip==0 && sl12>=NormalizeDouble(sl11+TralStep*Point,Digits) && Bid-prbp>=TralStart*Point && mn1 OrderModify(ticket1,price1,sl12,tp,0);

if(tip==1 && (sl13=TralStart*Point && mn1 OrderModify(ticket1,price1,sl13,tp,0);


if(tip==0 && sl12>=NormalizeDouble(sl11+TralStep*Point,Digits) && Bid-price1>=TralStart*Point && mn1==magic1 && ko1==1)
{
magic1=magic1+1;

return(0);
}

if(tip==1 && (sl13=TralStart*Point && mn1==magic2 && ko2==1)
{
magic2=magic2+1;

return(0);
}

Буду очень благодарен если подскажите!!!
Сову выкладывать не буду, слишком дорого заплатил за него.
Есть Стратегия Ловля тренда, на другом форуме мы с партнерами ведем тему Если надо выяснит алгоритм, то там есть все по стратегии Загуглите Советник RealForex!
Спасибо!
В общем то мы можем и на этот форум переселиться! У нас много наработок!

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025