Ошибка #1 при модификации ордеров - страница 6

 
tara:
Как голосовал? 
Сегодня было прохладно (+15), потому выходил одетым. И не совал ничего, т.к. меня это не касается. 
 
Акелла ... 
 
tara:
Акелла ... 

Не пыжься! Что хочешь сказать?

 
borilunad:

Все проверки проводятся до цикла, в котором условия, относящиеся к каждому типу и вызов этой функции, в которой только проверка на ошибки в Modify():

Если что, ещё спрашивай, но сейчас пошёл ужинать. ;)

Борис, Благодарю, разумеется за помошь. Но, в общем-то, оказалось, что у меня косяк не в том месте был зарыт. А в другом. После посыла ордера в этом же методе посыла ордера происходила модификация, а потом, на том же тике, модификация уже по другом условию. В обем, когда открывался ордер, на том тике скакали ошибки. А в другие моменты не было никаких ошибок.

Если пойти дальше, то функция проверки на стоплевел и фризлевел + там корректировалась цена, если не совсем соблюдаются условия хотя и верная, но почему-то компилятор кривой не хочет её верно обрабатывать. Принтую всё, всё она получает как нужно, на один уровень вверх тоже всё чётко. А рузультата не было. Я разпилил ту функцию на 2 части, и, теперь всё работате.

Мне, разумеется, не фига не нравится эти все кривости, но пока что переживу как-нить...

 
hoz:

Борис, Благодарю, разумеется за помошь. Но, в общем-то, оказалось, что у меня косяк не в том месте был зарыт. А в другом. После посыла ордера в этом же методе посыла ордера происходила модификация, а потом, на том же тике, модификация уже по другом условию. В обем, когда открывался ордер, на том тике скакали ошибки. А в другие моменты не было никаких ошибок.

Если пойти дальше, то функция проверки на стоплевел и фризлевел + там корректировалась цена, если не совсем соблюдаются условия хотя и верная, но почему-то компилятор кривой не хочет её верно обрабатывать. Принтую всё, всё она получает как нужно, на один уровень вверх тоже всё чётко. А рузультата не было. Я разпилил ту функцию на 2 части, и, теперь всё работате.

Мне, разумеется, не фига не нравится эти все кривости, но пока что переживу как-нить...

Не за что! У меня тоже не всё в порядке! Допилил, наконец, очередной советник. С ночи в воскресенье поставил на демо и обнаружил, что доливка не тралится, так сегодня весь день разбирался, и только сейчас, наконец, всё тралит нормально. А уж на Реале снова будут какие-нибудь сюрпризы. Главное, упорство, терпение и настойчивость!
 
https://forum.mql4.com/ru/65622
 
Советую Вам обратиться к самому проффессору! Вы хотите изменить логику его системы, и никто лучше его этого не сделает, да и вряд ли найдёте охотника возиться с чужим кодом, тем более, скорей всего устаревшим, да ещё за "охрану" нетитулованным охранником!
 

Борис, загвоздка в том, что в Вашей функции не учитываются ряд факторов. Например, разрешена ли торгволя... и тд. У меня в моей функции модификации есть такие строки:

   while (IsTradeAllowed() == true)
      {
         if (!IsExpertEnabled() || IsStopped() || li_Cnt > 200)
         {
            CLogs.WriteLog (StringConcatenate ("Error: Trying to send order ", GetNameOP (fi_Type), " | Price: ", DToS (fd_Price), " NOT IsTradeContextBusy"));

            if (!IsExpertEnabled())
            {
               CLogs.WriteLog ("Permit ExpertEnabled !!!");
            }
            return (-1);
         }

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

 и не думать о них больше? Так же проще...

Прввда проще только в случае, если адекатная платформа. В нашем случае вариант не лучший. Но можно найти золотую середину типа. Не очень длинные коды, но и не пустоватые.

 
hoz:

Борис, загвоздка в том, что в Вашей функции не учитываются ряд факторов. Например, разрешена ли торгволя... и тд. У меня в моей функции модификации есть такие строки:

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

 и не думать о них больше? Так же проще...

Прввда проще только в случае, если адекатная платформа. В нашем случае вариант не лучший. Но можно найти золотую середину типа. Не очень длинные коды, но и не пустоватые.

Bиктор, у меня проверка на разрешение торговли перед открытием позиции, а также проверка на достаточность Эквити и много чего, но в старте, а не в функциях! Зачем же проверять при модификации?
 
borilunad:
Bиктор, у меня проверка на разрешение торговли перед открытием позиции, а также проверка на достаточность Эквити и много чего, но в старте, а не в функциях! Зачем же проверять при модификации?

Борис, тут всё просто.

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

Во-вторых, на данную проверку времени нужно так мало, что это не придаст никакой оптимизации кода и не ускорит процесс. Т.е. либо проверить на "Разрешено ли торговать" и войти в функцию, либо войти и проверить "Разрешено ли торговать".

В-третьих, про эксвити я согласен, это уже нужно выносить отдельно. Я у себя этот кусок отпилил. И много чего убрал. Щяс функция короткая уже в общем-то.

Причина обращения: