Ваші питання з мови MQL4, Forex Forum - Незалежний форекс форум для трейдерів

Ця тема створена для будь-яких питань щодо мови програмування MQL4. Запитуємо, відповідаємо, допомагаємо та живемо дружно.

Я тут гість

Прошу допомогти прикладом

Основа у мене готова, прошу допомогти прикладом. Є змінна Lot=0.01 Як програмно якщо попередня угода закрилася по стоп-лосу виконати Lot=Lot+0.01?

Радник працює потиково й у мене біліберда.

будуєш свою трендову на графіку руками, в скрипті\індику\сові дізнаєшся потрібні тобі параметри своєї лінії допомогою ObjectGet(string name, int prop_id) name - ім'я твого об'єкта prop_id - Ідентифікатор якості об'єкта. Можливо будь-яким із значень списку властивостей об'єкта.

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

якщо ж не шкода 5-13 можна звернутися до платного програміста в розділі робота, або за безкоштовно з форуму якогось проґера підправити попроси.

якщо хочеш вивчити мкл, то починай з азів: типи змінних (подання даних), умовні оператори, цикли, функції без параметрів і з ними, якщо це знати то мкл4 з його хелпом зі стандартним функціями далі вивчити праці не складе, бо хелп там ну дуже важко не зрозуміти

для об'єктно-орієнтованої мови драбинки можливо буде трохи інакше

Підкажіть, будь ласка, як реалізувати відкладений ордер на відстані від МА для 5 знака

OrderSend(Symbol(),OP_BUYSTOP,0.1,ma+Dist_,NULL,NULL,Blue); постійно вискакує помилка 4107 хоча через Алерт показує потрібну ціну наяку я хотів би поставити відкладку

Підкажіть, будь ласка, як реалізувати відкладений ордер на відстані від МА для 5 знака

OrderSend(Symbol(),OP_BUYSTOP,0.1,ma+Dist_,NULL,NULL,Blue); постійно вискакує помилка 4107 хоча через Алерт показує потрібну ціну на яку я хотів би поставити відкладку

ERR_INVALID_PRICE_PARAM 4107 Неправильний параметр ціни для торгової функції гугл та хелп на допомогу

перед тим як подавати ціну в OrderSend її потрібно нормалізувати(привести до потрібної кількості знаків за заспіванням)

а в алерті все виглядало добре швидше за все через те, що в параметр ціну ти передавав як double а не string

у хелпі все написано

void Alert( . ) Відображає діалогове вікно, що містять дані користувача. Параметри можуть бути будь-якого типу. Кількість параметрів не може перевищувати 64.

Масиви не можна передавати до функції Alert(). Масиви мають виводитися поелементно.

Дані типу double виводяться з 4 десятковими цифрами після точки. Для виведення чисел з більшою точністю використовуйте DoubleToStr(). Дані типи bool, datetime та color будуть виведені як числа. Щоб вивести дані типу datetime у вигляді рядка, необхідно використовувати функцію TimeToStr().