[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 624
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В этой функции используются локальные переменные, поэтму ее не надо запускать да раза как отдельную функцию, сделайте два цикла один за другим в одной функции, или объявите А как глобальную переменную. Я отбегу за сигаретами, а вы пока попробуйте, если не получится, стучите, как вернусь, разберемся.
работало пока не вставил следующее
if (OrderSelect( (LastClosetPoz (),SELECT_BY_TICKET)==true)) Print("Stop loss", OrderStopLoss());
ругается
')' - wrong parameters count G:\Program_Files_2\MT4-demo\experts\000.mq4 (57, 60)
не могу понять что ему надо?
--------------------------------------------------------------------------------------------
РАЗОБРАЛСЯ
надо убрать ==true....
что странно, ибо в примерах учебника всегда так пишется...
а еще он ОКРУГЛИЛ значение стопа..до 4й цифры...
ЕСТЬ!!!! маленькая ошибочка была...принтовать надо было не Ticket , а LastClosetPoz() и Sec_LastClosetPoz().
Уверен, что мой вариант не самый элегантный... зато работает...А как вставить два цикла в одну функцию... я не знаю...попробовал..пысыпались ошибки...да ну их к черту! (если вам не трудно -покажите - мне будет полезно, если нет - ну и ладно...) все равно спасибо.
Однако чую если мне понадобиться выяснить тикет 35-й закрытой сделки...с моим подходом у меня будут проблемы :)))) хахахх
благо, это пока даже на горизонте не предвидится...максимум 3...
принтует ноли...не работает...копаться уже не буду, ибо видно что циклы просто подставлены один под другой - объем явно не уменьшился.....и у нас уже есть работающий вариант. к тому же в первом варианте - я могу сравнить ордера...а тут я даже не вижу где второй..да и первый равен нолю..
после небольших махинаций...которые ЯВНО развивают мозг, заработал и этот код! :)) спасибо
работало пока не вставил следующее
if ( Print("Stop loss", OrderStopLoss()); ) Print("Stop loss", OrderStopLoss());
ругается
')' - wrong parameters count G:\Program_Files_2\MT4-demo\experts\000.mq4 (57, 60)
не могу понять что ему надо?
Опять 45, в таком виде OrderSelect(LastClosetPoz (),SELECT_BY_TICKET) по умолчанию выбирает среди отложенных и открытых ордеров, а там этого ордера нет. поставьте OrderSelect(LastClosetPoz (),SELECT_BY_TICKET,MODE_HISTORY).
принтует ноли...не работает...копаться уже не буду, ибо видно что циклы просто подставлены один под другой - объем явно не уменьшился.....и у нас уже есть работающий вариант. к тому же в первом варианте - я могу сравнить ордера...а тут я даже не вижу где второй..да и первый равен нолю..
после небольших махинаций...которые ЯВНО развивают мозг, заработал и этот код! :)) спасибо
Просто распечатайте переменные Ticket1 и Ticket2 после вызова функции.
rigonich
подскажите пожалуйста, в какой файл записываются глоб. переменные? Чтобы можно было быстро перебрасывать на другой терминал.
Опять 45, в таком виде OrderSelect(LastClosetPoz (),SELECT_BY_TICKET) по умолчанию выбирает среди отложенных и открытых ордеров, а там этого ордера нет. поставьте OrderSelect(LastClosetPoz (),SELECT_BY_TICKET,MODE_HISTORY).
неа....низяяяя...МОДЫ..работают только с SELECT_BY_POS. А тикет сам по себе! он абсолютно индивидуален, поэтому даже не нужно указывать где он
(дочитайте там ответ..я дописывал решение)
-------Parameters:
SELECT_BY_POS - index in the order pool,
SELECT_BY_TICKET - index is order ticket.
MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
MODE_HISTORY - order selected from history pool (closed and canceled order).
неа....низяяяя...МОДЫ..работают только с SELECT_BY_POS. А тикет сам по себе! он абсолютно индивидуален, поэтому даже не нужно указывать где он
-------Parameters:
SELECT_BY_POS - index in the order pool,
SELECT_BY_TICKET - index is order ticket.
MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
MODE_HISTORY - order selected from history pool (closed and canceled order).
Простите, зарапортовался, вы правы, просто у вас в строке if ( Print("Stop loss", OrderStopLoss()); ) Print("Stop loss", OrderStopLoss()); нет условия, а вместо него вставлен оператор.
Я не программер, но иногда простейшие вещи пишу себе сам. Написать не сложного робота можно на любом языке и это вообще не проблема. И хотелось не часть функций оформить в виде длл и вызывать их потом из мкл а именно целиком со своим интерфейсом написать робота без вызова метатрейдера. Благо щас полно понапридумывали различных visual языков где это можно сделать без особого напряга
Ясно. В поставке МТ идут примеры написания длл на С\С++ оформлено в виде проекта для создания длл.
Каталог: Каталог_В_котором_Расположен_МТ\experts\samples. Берите его и правьте под Ваши нужды. Для того, чтобы с ним разобраться глубоких знаний С++ не нужно. Достаточно знать основы и синтаксис С.
Обратите внимание: проект должен быть с .def файлом, иначе длл не подключите. В примере именно такой проект как надо.rigonich
подскажите пожалуйста, в какой файл записываются глоб. переменные? Чтобы можно было быстро перебрасывать на другой терминал.
Не знаю, поискал, не нашел, но наверное можно открыть сервис-->глобальные переменные в терминале, и скопировать их оттуда, попробуйте.
А в общем это связано с синхронизацией работы нескольких терминалов,попробуйте поискать в этом направлении, кажется мне встречалось что то подобное на этом сайте или в статьях, или в кодобазе.