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

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

#2401

Спс, я уже разобрался, сов не хочет видеть индюк, я его переделал под другой индюк, и о чудо, он заработал, работающий сов выложил на форум
/torgovye-sistemy/2/h1h4-forex-ultra-filter/1127, там кто-то сову просил я туда и бросил!

#2402


Спасибо, за ответ, проверку ордеров я воротил и так и этак, да все не мог исправить до конца, может внимания не хватает, писал его в основном по ночам, когда с работы приходил, и исправлял также по ночам, вчера весь день над ним просидел, а потом всплыло отчаяние, решил попросить уже помощи, сравню 2 варианта, на своих ошибках попробую научиться!!!
Теперь, когда основа заработала буду его дальше крутить и исследовать!


Добавлено: 28-07-2015 12:53:41

Еще 1 вопрос, в 2 строках OrderModify(ticket, OrderOpenPrice(), SL, TP, 0); и
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); выдает вот такую фразу: return value of 'OrderModify' should be checked ultra-signal.mq4 75 9 при этом все строки были написаны по видео и сверял несколько раз, но пишет 4 варнинга и при тесте не может оставить 1 ордер, постоянно висит buy и sell одновременно


OrderModify() и OrderSelect() должны возвращать булевое значение.Поставьте перед ними bool rez = и всё.
#2403

Можно ли получить время котировки с сервера типа MarketInfo(Symbol(),MODE_TIME) точнее одной секунды?

#2404
miniTrader сам формат datetime не позволяет... Есть ф-ция GetTickCount(), но она работает с виндовым таймером и пригодна только для вычисления интервалов. На самом деле пинг от сервера до Вашего компа делает инфу о миллисекундах ненужной. имхо.
#2405

Все мне не дает покоя индикатор ультра сигнал(хз чего), просмотрев 1,2,3 видео я так и не понял, как, мне в строку
double h1 = iCustom(NULL, 0, "Ultra-Signal", 0, 1); в источник данных подставить сравнение по видео если а2>0 но не равно значению, может мне кто на пальцах объяснить, а то лежит уже 3 совы грузом, если 2 буфера совы у меня работают, а 3 и больше уже не хотят!

#2406
big13 из Вашего поста ничего не понял, кроме того, что Вы пытаетесь индюк без параметров вызвать. Видео не смотрел, поэтому, если хотите помощи - конкретно пишите.
#2407


big13 из Вашего поста ничего не понял, кроме того, что Вы пытаетесь индюк без параметров вызвать. Видео не смотрел, поэтому, если хотите помощи - конкретно пишите.

Смысл такой, ультра сигнал, индюк с закрытым исходником, есть 6 буферов, по видео следует, что после исследования индикатора и нахождения параметров которые изменяются в строку
double h1 = iCustom(NULL, 0, "Ultra-Signal", 0, 1); надо подставить значение буфера, который изменяется, и в строку
double l1 = iCustom(NULL, 0, "Ultra-Signal", 1, 1) обратное значение, прикрепляю сов, который пытаюсь заставить работать, сразу уточняю, что если в индикаторе всего 2 буфера, совы работают, если больше, на ультра сигнале их 6,сов на каждом тике открывает и закрывает сделку!
П.с. при исследовании выяснил, что параметры меняются в 0 и 1 буферах

Adjustable_MA_ultrafiltr.mq47 скач.

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

#2408

Помогите пожалуйста сделать из этого индикатора вот такой индикатор:

(Чистый спред) = Бычий спред (зеленая гистограмма) - Медвежий спред (красная гистограмма)

VSA_Spred.mq47 скач.

#2409
F.Zhukov не дублируйте посты! мне что в каждой теме Вам отписываться?
#2410

Всем доброго времени суток!
Касательно моей последней просьбы о помощи, она не актуальна, я во всем разобрался сову запустил!

#2411

Уважаемый OII!
В новых версиях МТ4 у меня не работает SimpleForexTester.( Нашел его на этом сайте)
Подскажите пожалуйста как можно его заставить работать.
Или пора с ним распрощаться?






























































































































































































#2412
formula я даже не знаю что это... Вы задайте этот вопрос в соответствующей ветке.
#2413

Сергей, добрый день. Подскажите, каким образом из экселевской таблицы нанести на график вертикальные линии. Просто анализирую графики другими методами программирования, в результате получаю экселевскую таблицу, в которой по датам отмечены профитные и убыточные сделки. Пока не знаю MQL, делаю так и вручную наношу эти линии. Здорово было бы скриптом загружать их на график. В курсе молодого бойца не нашла этого. Экселевскую таблицу могу получить в любом виде.

#2414
sovoka я делал ранее скрипт который читает .csv файл (который можно получить из экселя) поищите в этой теме. Подробностей уже не помню...
#2415

Фууух, наконец-то разобрался. Писал советник как на уроке по трейлинг стопу. Сначала посмотрел видео, потом написал по памяти советник с Trailingstop и Treilingstep. В тестере получил следующее- Советник тралит бай, но вообще не тралит селл. Открывает одну сделку(селл) и держит ее до конца теста. Сто раз сверился с видео что я делаю не так. Форум дочитал до 70 страницы.Дальше читать терпения не хватило. В общем в коде который на видео ошибка в строке if (OrderStopLoss()>Ask + (TrailingStep+TrailingStop)*Point). Блок функции установка СЛ на селл. Получается что если у нас первый ордер установлен с значением Стоплосс=0, а он у нас так и установлен, то это условие никогда не выполнится, так как 0 не может быть больше цены(н-р 1.3540)+ (трейлингстеп(50)+трелингстоп(30))*0,0001. Поменял знак. Сейчас выглядит так: if (OrderStopLoss()

Изменено 2 августа, 2015 пользователем igid

#2416

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

One.mq48 скач.

#2417


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

В проверку хэндла файла после открытия вставьте элзе принт("Файл не найден.")
Если файл корректно открыт вставте принт в цикл чтения и построчно выводите в журнал.
#2418

Так и не разобрался. Написал 4 советника с разными тралами. У всех в тесте ошибка 130. Не знаю почему она возникает и как сделать так, чтобы ее не было. Еще трал по фракталам вроде работает, но когда тестируешь с визуализацией - тест дальше первой сделки не идет( отрывается первый ордер и все, дальше никаких признаков жизни). А трала по pSAR заметил такую вещь. Советник открыл БАЙ, но цена тут же пошла вниз. А значения то индикатора получается сверху свечи, то есть стоплосс не может быть больше текущей цены. И у нас открыта позиция на долгое время без стоплосса. На скрине отметил это красной стрелкой. Подскажите как быть в данной ситуации?

FractalTrailing.mq414 скач.
ExtremumTrailing.mq49 скач.
MATrailing.mq49 скач.
ParabolikTrailing.mq49 скач.
ScreenClip.png

#2419


Так и не разобрался. Написал 4 советника с разными тралами. У всех в тесте ошибка 130. Не знаю почему она возникает и как сделать так, чтобы ее не было. Еще трал по фракталам вроде работает, но когда тестируешь с визуализацией - тест дальше первой сделки не идет( отрывается первый ордер и все, дальше никаких признаков жизни). А трала по pSAR заметил такую вещь. Советник открыл БАЙ, но цена тут же пошла вниз. А значения то индикатора получается сверху свечи, то есть стоплосс не может быть больше текущей цены. И у нас открыта позиция на долгое время без стоплосса. На скрине отметил это красной стрелкой. Подскажите как быть в данной ситуации?



Вот поправленный трал с фракталами:

void Trailing()
{
SL = 0;
fractal_down = NormalizeDouble(iFractals(NULL,0,MODE_LOWER,5),Digits);
fractal_up = NormalizeDouble(iFractals(NULL,0,MODE_UPPER,5),Digits);
for (int i =0;i {
if (OrderSelect(i,SELECT_BY_POS))
{
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if (OrderType()==OP_BUY)
{
if(fractal_down>0)
{
SL=NormalizeDouble(fractal_down,Digits);
if (OrderStopLoss()!=SL)
{
if(SL bool rez = OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);
}
}
}
if (OrderType()==OP_SELL)
{
if(fractal_up>0)
{
SL=NormalizeDouble(fractal_up,Digits);
if (OrderStopLoss()!=SL)
{
if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
bool rez = OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);
}
}
}
}

}


}


Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)

Изменено 4 августа, 2015 пользователем Konstebl

#2420



Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)


Спасибо. От ошибки избавился, Но все равно советники не тестируются при визуализации. У Вас также?
#2421

Здравствуйте.
Давно искал нечто подобное, но нашел только на мт5. Может Вам встречался для мт4 или напишем, перепишем?






ссылка: https://www.mql5.com/ru/market/product/850#
#2422




Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)


Спасибо. От ошибки избавился, Но все равно советники не тестируются при визуализации. У Вас также?


double Lowestprice()
{
double Lprice;
double Lowprice=100000;
for (int i=0;i { // 1-я скобка
Lprice=iLow(Symbol(),0,i);
if(Lprice Lowprice=Lprice;
} // 2-я скобка
return(Lowprice);
}
//+------------------------------------------------------------------+
double Highestprice()
{
double Hprice;
double Highprice=0;
for (int i=0;i { // 1-я скобка
Hprice=iHigh(Symbol(),0,i);
if(Hprice>Highprice)
Highprice=Hprice;
} // 2-я скобка
return(Highprice);
}

Вы в этих функциях не поставили скобки(выделены).И советник стал тестироваться.
Только какие это экстремумы это просто хай или лоу предыдущей свечи!

Изменено 5 августа, 2015 пользователем Konstebl

#2423

Уважаемые гуру,
только начал изучение темы, написал пару строк по третему уроку, но выскакивают четыри ошибки при компиляции:

return value of 'OrderModify' should be checked
return value of 'OrderModify' should be checked
return value of 'OrderSelect' should be checked
return value of 'OrderSelect' should be checked

Никак не могу разобраться в чём причина
Может кто помочь?

Test311.mq48 скач.

#2424


Уважаемые гуру,
только начал изучение темы, написал пару строк по третему уроку, но выскакивают четыри ошибки при компиляции:

return value of 'OrderModify' should be checked
return value of 'OrderModify' should be checked
return value of 'OrderSelect' should be checked
return value of 'OrderSelect' should be checked

Никак не могу разобраться в чём причина

Может кто помочь?



Поставьте перед этими функциями bool rez = и всё.
#2425

Буквально страницу назад об этом писали. Функции OrderSend() и OrderModify() возвращают булево значение true или false при успешной операции или неудачной. Предполагается, что вас интересует столь важное действие как открытие или модификация ордера и вы захотите это проверить.
В самом простом варианте пишите:
bool result = OrderModify() - и это предупреждение компиляции исчезнет.

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

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