Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день.
В программировании ещё новичок, может кто подскажет.
Вопрос. Имеется один или несколько открытых ордеров, известно что они закроются с профитом допустим 20 $.
Нужно узнать, по какой цене закроются ордера при профите 20 $.
Вычисляем общий объём открытых лотов, а дальше?!
Не подскажите как сделать.
Может быть есть уже готовая функция?
Заранее спасибо.
Примеры использования функци DistMarketAndPos().
Зачем может понадобиться функция, которая определяет, как далеко находится рынок от ближайшей к нему позиции? Я вижу, как минимум, четыре основных варианта:
ЗЫ. Если кому-то нужна конкретная реализация любого из перечисленных вариантов, пишите сюда заявки. Выполню все пожелания в рамках того, что я перечислил выше.
ЗЫ-ЗЫ. В прицепе скрипт-заготовка для экспериментирования с функцией DistMarketAndPos().
Здравствуйте KimIV, функция очень хорошая, работает, переворачиваю ее, тоже работает, а соединить две половины не могу.
int start()
{
if (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,Ask+150*Point);
}
return(0);
}
int DistMarketAndPos(string sy="", int op=OP_BUY, int mn=-1) {
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0.00001; else p=0.01;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return (r);
}
Новая версия функции Message().
Про направления вывода Alert и Print (знакоместа 1 и 3) следует отметить, что они умеют выводит сообщение построчно. То есть, если в тексте сообщения есть перенос строки - управляющий символ "\n", то каждая строка будет выведена самостоятельно. Попробуйте тестовый скрипт во вложении, думаю, Вам понравится :-)
Новая версия функции Message().
Про направления вывода Alert и Print (знакоместа 1 и 3) следует отметить, что они умеют выводит сообщение построчно. То есть, если в тексте сообщения есть перенос строки - управляющий символ "\n", то каждая строка будет выведена самостоятельно. Попробуйте тестовый скрипт во вложении, думаю, Вам понравится :-)
Добавляли в вашу функцию OpenPosition проверку на стоплевел?
нет... а какого рода проверку Вы имеете в виду? Ну, допустим, стоп и тейк проверку не прошли, что делать? Есть варианты:
нет... а какого рода проверку Вы имеете в виду? Ну, допустим, стоп и тейк проверку не прошли, что делать? Есть варианты:
Новая версия функции OpenPosition() в скрипте для тестирования.
Что нового?
1. При ошибке 130 Неверные стопы и при значении переменной NumberOfTry>1 функция сделает попытку скорректировать ценовые уровни StopLoss и TakeProfit под значение MODE_STOPLEVEL+MODE_SPREAD относительно Bid для OP_SELL и относительно Ask для OP_BUY.
Замечание:
Для срабатывания корректировки ценовых уровней нужно, чтобы значение глобальной переменной NumberOfTry было больше 1. Это связано с тем, что первая попытка открытия позиции выявляет ошибку 130 и корректирует ценовые уровни, а вторая и последующие попытки откроют позицию со скорректированными уровнями.
Добрый день.
Можно ли дополнить библиотеку полезных функций от KimIV некоторыми простыми функциями, как например :
1. Цена открытия, выбранной по некоторым критериям позиции (символу, типу, величине лота, магическому числу). Эту цену можно запомнить в глобальных переменных и использовать как некоторый ценовой уровень, от которого можно строить алгоритм советника.
2. Возвращает тиккет, выбранной по некоторым критериям позиции или ордера (символу, типу, величине лота, магическому числу). Тиккет это важный идентификатор , его можно использовать везде и даже как флаг существования.
Чем больше будет таких простых функций, тем проще будет подобрать самые оптимальные из них для себя, не опасаясь, что не ошибешься при модификации существующих.
Спасибо Вам за ваши функции.