Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 4

 
Stacy:
Я очень благодарен за эту статью, она мне очень помогла. После написания кодов для советника я нажал кнопку отладки и мне сказали, что у меня 10 ошибок, в вашей статье нет никакой информации для исправления этих ошибок. Как мне решить эту проблему, пожалуйста, напишите мне как можно скорее?

Привет, Стейси,

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

Просто подождите ее.

Спасибо

Сэмюэль.

 

привет всем!

Я новичок и я пытаюсь написать E.A следуя руководству, но он не делает ордера на продажу или покупку.

Мой алгоритм использует 2 ma (6 и 12) и 1 rsi(14), вот так:


bool Buy_Condition_1 = (maVal_fast[0]<maVal_slow[0]) && (maVal_fast[1] > maVal_slow[1]);

bool Buy_Condition_2 = (rsiVal[0] < Pereprod);

if(Buy_Condition_1 && Buy_Condition_2)

{

// бла... бла...

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена ask

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Стоп-лосс

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.volume = Lot;// количество лотов для торговли

mrequest.type = ORDER_TYPE_BUY;

// .............


}

но он не переходит в код сегмента выше. поэтому он не может автоматизировать торговлю. = = =!

Мне нужна помощь :(.

Я использую PRICE_MEDIAN вместо PRICE_CLOSE (я не знаю разницы между ними).

спасибо.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

hi everyone!

i am a beginer and i am trying to write an E.A follow the guide but it did not make sell or buy order.

Здравствуйте,

Не могли бы вы предоставить ваш код, чтобы мы могли увидеть, в чем проблема?

 

Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали?

Это сделано потому, что значения входных параметров не могут быть модифицированы, они только для чтения.

Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами. Для определения точности цены котировок по текущему символу графика можно воспользоваться.

Удивительный "подход" используют уважаемые и опытные программисты для "решения проблемы" 5-тизнака. А теперь этот "подход" ещё и культивируется среди новичков, в учебной, можно сказать, литературе.

Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.

"Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами". Ну убедились и дальше что? Как теперь использовать преимущество 5-тизнака, если программно советник это преимущество "приговорил исправно служить".

 
abolk:

Удивительный "подход" используют уважаемые и опытные программисты для "решения проблемы" 5-тизнака. А теперь этот "подход" ещё и культивируется среди новичков, в учебной, можно сказать, литературе.

Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.

"Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами". Ну убедились и дальше что? Как теперь использовать преимущество 5-тизнака, если программно советник это преимущество "приговорил исправно служить".

10,5 - это тот еще аргумент :)

А стандартизация на 4 знака вполне объяснима, если учесть необходимость универсальной работы на счетах с разной точностью.

Возможно если все брокеры будут использовать счета с 5 знаками такой обработки не понадобится (хотя для универсальности кода наличие такого блока не повредит) ИМХО.

А вот как это не дает воспользоваться преимуществами 5-го знака я понять не могу.

Точность данного блока вполне позволяет пользоваться 1-м четырехзначным пунктом (условно "стандартным"), в пересчете на пятизнак выйдет 10 пипсов.

PS

Не думаю большинство брокеров позволят нормально использовать меньшее значение. Даже если позволят и в этом будет необходимость из положения можно будет выкрутиться (пусть даже применив такие странности как 0,1-0,9).

 
Interesting:

10,5 - это тот еще аргумент :)

А стандартизация на 4 знака вполне объяснима, если учесть необходимость универсальной работы на счетах с разной точностью.

Возможно если все брокеры будут использовать счета с 5 знаками такой обработки не понадобится (хотя для универсальности кода наличие такого блока не повредит) ИМХО.

А вот как это не дает воспользоваться преимуществами 5-го знака я понять не могу.

Точность данного блока вполне позволяет пользоваться 1-м четырехзначным пунктом (условно "стандартным"), в пересчете на пятизнак выйдет 10 пипсов.

PS

Не думаю большинство брокеров позволят нормально использовать меньшее значение. Даже если позволят и в этом будет необходимость из положения можно будет выкрутиться (пусть даже применив такие странности как 0,1-0,9).

 

При 4-хзнаках цена изменяется на 0,0001, при 5-ти - на 0,00001.

На 4-хзнаке нет возможности сделать возможным закрыться по тейку через 10,5 стандартных пунктах, а на 5-тизнаке такая возможность есть.

Если программно использовать вышеуказанный блок, то при использоварнии советника на 5-тизнаке возможность изменить, например, тейк на 10,5 стандартных пункта будет отсутствовать. Для скальперов это важно.

Чтобы советник корректно работал на 4-х и 5-тизнаке надо при округлениях программно учитывать значность котировок, а во входных параметрах при задании, например, тейка, вручную учитывать, что 10 стандартных пункта записываются как 100.

В противном случае, если использовать такие блоки, то при переходе с к5-тизнака на 4-хзнак, что придётся делить?

Это же входные параметры, зачем с ними производить "странные" операции преобразования

 
abolk:

На 4-хзнаке нет возможности сделать возможным закрыться по тейку через 10,5 стандартных пунктах, а на 5-тизнаке такая возможность есть.

Вы торгуете? Или так, потеоритезировать захтелось?

Очень слабо представляю себе советника, для которого изменение ТП на 0.5 пункта сильно скажется на результатах. Для 99% советников проще и удобнее указывать все значения в 4-хзначных пунктах. А оставшийся 1% нет смысла описывать в общеобразовательных статьях.

 
komposter:

Вы торгуете? Или так, потеоритезировать захтелось?

Очень слабо представляю себе советника, для которого изменение ТП на 0.5 пункта сильно скажется на результатах. Для 99% советников проще и удобнее указывать все значения в 4-хзначных пунктах. А оставшийся 1% нет смысла описывать в общеобразовательных статьях.

+1.

Дело не в том с какой точностью торговать, а в том с какой будет звучать эти самые 10,5 и как это будет всех путать (особо начинающих трейдеров).

Пипс по определению самая малая единица изменения цены. Может я не прав?

Да и советников торгующих с ТП и СЛ в 5 пятизначных пункта (0,5 стандартного) вряд ли можно будет часто встретить в реальной жизни.

Я бы даже определил число таких экспертов как 0,1-0,01% от общего числа.

PS

Внутренние расчеты производимые по итогам торговых операций тут в расчет не берутся (каждый может округлять до необходимой точности).



 
abolk:

Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.

Полностью поддерживаю автора данного замечания.

Кому надо, тот и до 3-го знака себе округлит. Но делать это в общем случае - грубая ошибка.

Чем выше точность - тем лучше, и сводить ее на нет для всех какими-то своими сугубо субъективными взглядами практического использования не стоит.

P.S. В общем случае SL и TP задаются не в абсолютных значениях (как это везде принято), а в относительных. Тогда проблемы пипсов, 5-и знаков, пипсодолларов и остальной надуманной хрени отпадают сами собой.

 

abolk,  hrenfx,   о чём, собственно говоря, спор-то? Читаем внимательно название статьи: "... для начинающих".  Статья полностью оправдывает своё предназначение, как названием, так и содержанием. Поверьте на слово, для начинающих глубоко по барабану, какова точность округления у эксперта, основной подход: "нам бы с написанием советника разобраться". Пусть хоть 2 знака, хоть 7 знаков. Лично для меня, как для начинающего, фишка с "округлением" до 4 знаков (правда, в другой статье) оказалась очень полезной, раскрыв один из приёмов программирования. А с набором опыта высококвалифицированые специалисты сами смогут решить, с какой точностью производить вычисления/торговлю, и обсуждаемая статья никак не сможет им в этом помешать. Вам же эта статья никак не помешала :) Так и другие: "дорастут до вашего уровня - сами разберутся".

Ещё раз обращаю внимание: автор статьи не навязывает своё видение вопроса и не ставит на обсуждение ценность использования 4- или 5-знака. Автор всего лишь помогает новичкам освоить первоначальные шаги программирования на MQL5, с использованием тех или иных приёмов программирования.