Вопросы от "чайника" - страница 222

 
TVA_11: Ее нет в терминале (окно навигатор). Там все выглядит стандартно, так же как до компиляции.

 

Советники

адвизор

экзамплес

еще.. 

 Терминал => Ctrl+N (Навигатор) => Открываем одну из папок (Индикаторы, Советники или Скрипты) => Ищем название нужной программы.
 
TVA_11: https://www.mql5.com/ru/code/103    вот этот эксперт. Создал сперва, что попало в экспертах. Потом туда вставил текст программы.

Эксперт изначальный запускали в тестере?

TVA_11: Ни одной сделки ни в одном варианте. Что не так? 

Что говорят лог-файлы? 

 

                    Похоже тот эксперт вообще не торгует.

Вставил от других, там где торгуют от двух любых баров туда куда идет, заработало.

Теперь пытаюсь понять как правильно торговать.

Что не эксперт, то свой подход ).

 

20_200 expert_v4.2_AntS.mq5

вот пытаюсь понять как он работает, и правильно ли торгует. 

 
TVA_11:

...

Что не эксперт, то свой подход ).

...

Эксперты в Code Base просто, как пример реализации. Не всегда качественный и полнофункциональный конечно. Всё, что более, нужно или делать самому или заказывать.
 

Мне не понятен смысл возможности, в редакторе MetaEditor, открытия новых окон кода (контекстное меню => Новое окно). При изменении в одном из окон тоже самое изменяется и в другом.

В Справке написано только это:

  • Новое окно — открыть копию текущей вкладки в новой. При этом в название вкладки будет добавлен порядковый номер копии;
 

Для чего нужны новые окна?

 

Здравствуйте, может кто-нибудь объяснить по win api. Создал диалоговое окно, функцией CreateDialog(). Почему оконная функция не выполняется атомарно, даже при использовании критической секции?

INT_PTR CALLBACK DialogProc(HWND hWnd,
                            UINT uMsg,
                            WPARAM wParam,
                            LPARAM lParam)
{
        lock.LockObject();              // Далее нужно атомарное выполнение.
        MessageBoxA(NULL, "", "", MB_OK);               // При запуске программы, вылетает пачка сообщений (одновременно).
        lock.UnlockObject();    // Переводим в свободное состояние (критическая секция).

    return FALSE;
}
 

В станд. индикаторах от МK в for дописали !IsStoped().

for(int i=pos;i<rates_total && !IsStopped();i++)

Подскажите, для чего это сделано, что это даёт?

 
paladin800:

Если цикл долгий (или вечный) как его можно прервать, не завершая процесс терминала? Когда пользователь дал команду – удалить скрипт с графика, функция будет возвращать истину (до этого события ложь). В результате не будет соблюдено условия для выполнения последующих итераций.

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • 2011.01.05
  • MetaQuotes Software Corp.
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.
 
220Volt:

Если цикл долгий (или вечный) как его можно прервать, не завершая процесс терминала? Когда пользователь дал команду – удалить скрипт с графика, функция будет возвращать истину (до этого события ложь). В результате не будет соблюдено условия для выполнения последующих итераций.

Ок, теперь мне понятно. Просто я сравнил с МQL4 и не мог уловить разницу.

С новым годом!

 

помогите пожалуйста, скиньте пример работы с ORDER_TIME_SPECIFIED, не могу нормально сделать время истечения ордера

вот вырезка из кода

int need_year_AUDUSD=mqldt.year;
int need_mon_AUDUSD=mqldt.mon;
int need_day_AUDUSD=mqldt.day;
int need_hour_AUDUSD=mqldt.hour;
int need_min_AUDUSD=mqldt.min+15;
int need_sec_AUDUSD=mqldt.sec;
string need_year2_AUDUSD=IntegerToString(need_year_AUDUSD,0,' ');
string need_mon2_AUDUSD=IntegerToString(need_mon_AUDUSD,0,' ');
string need_day2_AUDUSD=IntegerToString(need_day_AUDUSD,0,' ');
string need_hour2_AUDUSD=IntegerToString(need_hour_AUDUSD,0,' ');
string need_min2_AUDUSD=IntegerToString(need_min_AUDUSD,0,' ');
string need_sec2_AUDUSD=IntegerToString(need_sec_AUDUSD,0,' ');
string date_AUDUSD=(need_year2_AUDUSD+".0"+need_mon2_AUDUSD+".0"+need_day2_AUDUSD+" "+need_hour2_AUDUSD+":"+need_min2_AUDUSD+":"+need_sec2_AUDUSD);
datetime b_AUDUSD=StringToTime(date_AUDUSD);


trade.BuyStop(0.1,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D,qwerty,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D-SL,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D+TP,ORDER_TIME_SPECIFIED,b_AUDUSD);

 все очень криво, сам знаю, но в определенное время не нашел пример, пришлось самому мучиться, сейчас раздражает громоздкость

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