[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 591

 

оказывается надо чтобы присутствовала строка #include <WinUser32.mqh>.

 

и файл этот лежит в include

 

ну дайте дайте мне похвастаться...

 

не надо никаких флагов при модификации.

достаточно под условием if (кросс-средних к примеру).. взять отсыл на польз.функции КУПИТЬ и МОДИФИЦИРОВАТЬ в скобочки {} 

и таким образом условие будет разспространятся на ОБА действия :)) 

 

вот так

{My_buy ();

My_modify (); }

 

:)))))))))))))))))))))))) 

 

lottamer:

вот так

{My_buy ();

My_modify (); }

:)))))))))))))))))))))))) 

Такая вольная трактовка программного кода требует уточнения:

    if (условие == true)
    {
        if (Tvoi_buy() == true)  // как вариант
        {Tvoi_Modify();}
    }
:)))
 
TarasBY:

Такая вольная трактовка программного кода требует уточнения:

:)))


а зачем? 

 

и разве можно My_buy (небулевскую переменную) проверять на TRUE-FALSE ??

 

модификация идет безусловно - ордер открыт - надо выставить стопы-тейки... 

 
lottamer:

модификация идет безусловно - ордер открыт - надо выставить стопы-тейки... 

тогда зачем вы её внутрь скобок { } if (кросс-средних к примеру) внесли?
 

матерею на глазах! (т.е. становлюсь матерым!) :))

 

вот какая еще штука получалась.

после модификации ордера, выскакивало окно сообщения об успешной модификации. И (!) советник замораживался, пока я не нажму ОК в этом окне! это очень плохо. причем если после появления окна, отключить советник, то далее по нажатию  ОК в окне сообщения - советник ВСЕ РАВНО ДОВЫПОЛЯЛ свои действия (в данном случае закрытие позиции). Интересная вещь - советника уже нет, а его команды выполняются!

 

пришлось немного подумать и убрать строку  

message=message+"Ошибка модификации ордера #"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+". "+error_desc+" \n"

после чего все пошло как помаслу. окон никаких нет..все открывается и закрывается... открывается и закрывается... открывается и закрывается... 

 

:))))))))))))

П.С

а вот если убрать  

OrderPrint(); 

   continue;       

то никаких изменений не происходит...то же самое и со строкой  

if(ret==IDOK) return(0);

что  она есть, что ее нет - никаких изменений!

 

почему так? 

 
lottamer:


а зачем? 

если ордер не открылся - что будете модифицировать???

lottamer:

и разве можно My_buy (небулевскую переменную) проверять на TRUE-FALSE ??

так ХТО здесь БОХ ПРАГРАМИСТ?! из "небулевской" всегда можно сделать "булевскую"!!!

lottamer:

модификация идет безусловно - ордер открыт - надо выставить стопы-тейки... 

для этого и делается проверка на факт ОТКРЫТИЯ ордера.

Вы отважно сделали следующий шаг в познании языка - ознакомились с работой библиотек:

#include <WinUser32.mqh>

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

 
sergeev:
тогда зачем вы её внутрь скобок { } if (кросс-средних к примеру) внесли?


чтобы она БЫЛА.

А куда ее по вашему можно всунуть? только сразу после Открытия ордера.  

 
lottamer:

матерею на глазах! (т.е. становлюсь матерым!) :))

почему так? 

Осталось ДОГАДАЦЦА посмотреть "Что такое MessageBox()?" - через Ctrl+F1 в MetaEditor.
 
TarasBY:

если ордер не открылся - что будете модифицировать???

так ХТО здесь БОХ ПРАГРАМИСТ?! из "небулевской" всегда можно сделать "булевскую"!!!

для этого и делается проверка на факт ОТКРЫТИЯ ордера.

Вы отважно сделали следующий шаг в познании языка - ознакомились с работой библиотек:

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


1) на нет и суда нет! если ордер не открылся - он не сможет модифицироваться. потому что НЕЧЕГО модифицировать. я пока еще не дописал всего советника, пишу блоками - и сразу проверяю.потом дописываю и снова проверяю. Но я не думаю, что если сделка не откроется, то советник полностью переклинит, от того что он не будет знать что делать - приказ на модификаию есть, и открытой позы нет. :)) откроется на следующих тиках..и потом модифицируется

 

2)БОХ тут одноначно вы, ибо я , грешный, даже не понимаю как так булевскую-внебулевскую... т.е. есть польз. функц. и она допустим исполнилась, т.е.е поза открылась. И шо машина теперь будет понимать что моя польз.функц теперь TRUE, потому что она исполнилась?..... сорри за незнание вопроса

 

3) см.1

 

4) #include это тема, про которую я пока стесняюсь спрашивать! 

я правильно  понимаю, что теоритически , допустим, из моих скриптов CLOSE_ALL и MODIFY, можно вместо пользовательских функция, сделать #include и обращаться к ним.

а как бы я вставил это #include My_buy после if условия? 
 

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