Обсуждение документации MQL4 - страница 14

 
Mathemat:
Ну и ладно, надеюсь, необходимость в компиляторе С исчезла. В сети в принципе можно нарыть очень компактные дистрибутивы под DOS, весящие от силы десяток мегов.

Спасибо! После двух дней с учебниками по Си, стал хоть что-то понимать в примерах советников. Буду уж сразу пробовать на MQL4. Надеюсь ещё Rosha статьи скоро станут доступными.
 
Dmitrich:
Mathemat:
Ну и ладно, надеюсь, необходимость в компиляторе С исчезла. В сети в принципе можно нарыть очень компактные дистрибутивы под DOS, весящие от силы десяток мегов.

Спасибо! После двух дней с учебниками по Си, стал хоть что-то понимать в примерах советников. Буду уж сразу пробовать на MQL4. Надеюсь ещё Rosha статьи скоро станут доступными.

Они и сейчас доступны, хотя и по временной ссылке.
 
Rosh:
Dmitrich:
Mathemat:
Ну и ладно, надеюсь, необходимость в компиляторе С исчезла. В сети в принципе можно нарыть очень компактные дистрибутивы под DOS, весящие от силы десяток мегов.

Спасибо! После двух дней с учебниками по Си, стал хоть что-то понимать в примерах советников. Буду уж сразу пробовать на MQL4. Надеюсь ещё Rosha статьи скоро станут доступными.

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

Уважаемый Rosh, Спасибо за статьи! Уже опасаюсь писать нечто подобное на форуме, чтобы снова никого не задеть, но я так внимательно читал Ваши статьи, что обнаружил опечатку. Статья 3, строка 2, фраза «каждый их этих» вместо «каждый из этих». Буквы «х» и «з» находятся рядом на клавиатуре и я сам, бывает, промахиваюсь, а потом «вылавливаю» такие ошибки в документах. Вот и Вашу опечатку по привычке выловил.

;)
 
Спасибо, если смогу -исправлю (давно это было :) ).
 
Нет, не могу. Видимо, сменился и адрес системы публикаций.
 
С учебником вроде разобрались. А по документации прямого ответа так и не получилось.
А я тут ненароком решил посмотреть список параметров функции OrderSend и тут же наткнулся.

В пояснении к функции сказано: "Нельзя использовать расчетную либо ненормализованную цену. "
Совершенно четкое и ясное указание.

Несколькими строками ниже видим пример, где стоят именно ненормализованные и расчетные цены:

 ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
     if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }
Renat, разве это не есть фактическая ошибка ?
И разве согласуются такие вещи с понятием "качественная документация" ?

Поэтому и просят Вас заинтересованные пользователи доработать документацию. А вовсе не изощряются в необоснованной критике, не требуют невозможного или неоправданного, и уж конечно не стремятся задеть кого-нибудь лично или фирму целиком.
 
В этом примере предполагается, что цены Bid и Ask получены от торгового сервера, а значит цены по умолчанию нормализованы с точностью до Digits знаков после запятой. На деле оказалось, что до появления возможности скачивания глубокой минутной истории из History Center, многие пользователи самостоятельно готовили такую историю из разношерстных источников, и полученный результат при тестировании давал ошибку, связанную с ненормализованной ценой (ордера могли просто не открыться). Поэтому и появилась такая фраза :


Нельзя использовать расчетную либо ненормализованную цену. Если запрашиваемой цены открытия не было в ценовом потоке либо запрашиваемая цена не нормализована в соответствии с количеством знаков после десятичной точки, то будет сгенерирована ошибка 129 (ERR_INVALID_PRICE).


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

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

Может быть в последних билдах это и изменилось, но я нигде не встречал об этом упоминания.

Кроме того, в параметрах функции OrderSend() есть три цены. В приведенном примере две из трех являются расчетными. В расчетном выражении присутствуют как целые операнды, так и double. Нормализация цены возникла как средство решить проблему представления при преобразовании целых в double. Поэтому читатель этой документации, определенно не имеющий большого опыта в MQL4, не сможет с уверенностью сказать каков будет результат вычислений - нормализованный или нет. И поэтому пример этот для него породит больше вопросов, чем ответов.

И, даже если с нормализацией там все в порядке, остается еще расчетное выражение на месте цены.

Поэтому вопросы к Вам, Rosh, как к человеку, который пишет статьи по MQL4 для начинающих:
Вы действительно полагаете, что с этим примером все в порядке, и он иллюстрирует то, что должен иллюстрировать ?
Вы действительно полагаете, что такой пример поможет новичку понять как использовать OrderSend(), а не запутает его ?

 
Yurixx:

Вы действительно полагаете, что такой пример поможет новичку понять как использовать OrderSend(), а не запутает его ?

Лично я полагаю, что новичек не равно идиот. Если вы разобрались, если мне это не составило труда, то почему кто-то другой не сможет этого понять? Почему этот абстрактный новичок всегда ассоциируется с тупицей?
 
Юрикс, я вижу, что вы занимаетесь исключительно критиканством.