[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 279
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вообще, как и всякая другая программа, Ваша будет состоять из отдельных блоков, каждый из которых выполняет некую задачу. Берём один такой блок и пишем самостоятельно код, отлаживаем его от и до, затем переходим к следующему блоку. И так до конца программы.Тут смотрели? https://book.mql4.com/ru/samples/index
Спасибо посмотрю...
Доброго времени суток!
Подскажите, пожалуйста, надёжный способ определения флэта, если такой вообще есть.
Доброго времени суток!
Подскажите, пожалуйста, надёжный способ определения флэта, если такой вообще есть.
Флет - это движение цены, состоящее из одного или нескольких флетовых элементов.
Флетовый элемент - это элемент ценового движения, образуемого при движении цены в какую либо сторону от начальной точки с последующим откатом цены к этой точке.
Для поставки ордера служит команда
Тут OrderSend- команда роботу ставить ордер, в скобках на первой позиции вписывается валютная пара. Тут вписано Symbol(), эта функция выдает ту пару, куда нацеплен советник. Потом наименование торговой операции. Потом обьем лота, тут у миня множатся переменные. Цена, потом не помню, какое-то допустимое отклонение, 3пункта, дальше стоплосс, тейкпрофит, какое-то название(имя), потом магический номер-любой выбраный вами номер, потом не помню, потом цвет. Все имено в таком порядке. Можно без tikett=, просто OrderSend.
И вот, внимание! Ордер будет ставить на каждом тике, вплоть до сотен ордеров, если это просто вписать в старт. Нужны условия, что б ордер ставился когда надо. Пример.
Устал. Воспользуйтесь справкой, разберите готовые примеры.
Вообще, как и всякая другая программа, Ваша будет состоять из отдельных блоков, каждый из которых выполняет некую задачу. Берём один такой блок и пишем самостоятельно код, отлаживаем его от и до, затем переходим к следующему блоку. И так до конца программы.Тут смотрели? https://book.mql4.com/ru/samples/index
И всётаки постараюсь поставить вопрос поточнее... Мой советник успешно открывает ОДИН отложенный ордер и через некоторое время он должен его модифицировать... Для этого необходимо знать его индекс, либо номер позиции в отложенны ордерах. Как мне получить этот номер позиции или его индекс??? Обязательно устроивать перебор ордеров с помощью цикла for??? Ордер ведь у меня ОДИН... Вот часть кода моей неработающей программы
if (OrderSelect (1, SELECT_BY_POS, MODE_TRADES)==true)
{ticket = OrderTicket();
return();}
Как мне её правильней написать?
И всётаки постараюсь поставить вопрос поточнее... Мой советник успешно открывает ОДИН отложенный ордер и через некоторое время он должен его модифицировать... Для этого необходимо знать его индекс, либо номер позиции в отложенны ордерах. Как мне получить этот номер позиции или его индекс??? Обязательно устроивать перебор ордеров с помощью цикла for??? Ордер ведь у меня ОДИН... Вот часть кода моей неработающей программы
if (OrderSelect (1, SELECT_BY_POS, MODE_TRADES)==true)
{ticket = OrderTicket();
return();}
Как мне её правильней написать?
Функция OrderSend() если выполнилась успешно, то возвращает номер тикета ордера, который она только что открыла - это его порядковый номер на сервере и другого такого ордера там нет. Поэтому незачем устраивать повторный перебор ордеров - достаточно просто запомнить его тикет. Запомнить сразу после открытия ордера.
Функция OrderSend() если выполнилась успешно, то возвращает номер тикета ордера, который она только что открыла - это его порядковый номер на сервере и другого такого ордера там нет. Поэтому незачем устраивать повторный перебор ордеров - достаточно просто запомнить его тикет. Запомнить сразу после открытия ордера.
И как долго мы будем его "помнить" ? Можно его и потерять...
ИМХО - всегда нужно брать свежую и актуальную информацию по мере её надобности, а не хранить в памяти, зависимой от случая.
Лучше всё-таки найти ордерочек непосредственно перед его модификацией, нежели надеяться на авось... Авось питание не отключат, например...
И всётаки постараюсь поставить вопрос поточнее... Мой советник успешно открывает ОДИН отложенный ордер и через некоторое время он должен его модифицировать... Для этого необходимо знать его индекс, либо номер позиции в отложенны ордерах. Как мне получить этот номер позиции или его индекс??? Обязательно устроивать перебор ордеров с помощью цикла for??? Ордер ведь у меня ОДИН... Вот часть кода моей неработающей программы
if (OrderSelect (1, SELECT_BY_POS, MODE_TRADES)==true)
{ticket = OrderTicket();
return();}
Как мне её правильней написать?
Может как-то так:
Вернёт тикет последнего установленного ордера или -1
При вызове укажите нужный символ и магик советника, например:
Ф-ция вернёт тикет последнего установленного отложенного ордера на текущем символе (В вашем случае - единственного). Magic - магик-номер вашего советника
Можно тикет и в глобальные переменные засунуть. :) Можно вообще чёрту рога свернуть. Но как идея выбор ордера перед модификацией сработает. Вот только если при этом лоты сбрасывать не нужно всего 1 раз за всё время жизни ордера (с единичной при этом модификацией) :)
Короче, вариантов куча :)
Пожалуста, подскажите. Я еще как-то не очень разобрался, как работают индикаторы. Вот мой индикатор не рисует при смене таймфрейма, и так рисует через раз. Но иногда же рисует, и примерно что я и хотел! Подскажите пожалуста, что же ему не хватает.