Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 351
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
for (int i = 0; i<=OrdersTotal(); i++)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit()>= NormalizeDouble (TP*Point,Digits))
{
if (OrderType() == OP_BUY)
double Lots = OrderLots();
double HalfLot = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);
if (OrderType() == OP_SELL)
double Lots1 = OrderLots();
double HalfLot1 = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
}
}
}
}
да, и еще, а как сделать, чтобы она срабатывала только один раз за один открытый ордер?
Помогите пожалуйста исправить ошибки в этой функции. Уже все соки из меня выжала. Суть функции, при достижении определенного профита функция должна закрыть половину ордера.
да, и еще, а как сделать, чтобы она срабатывала только один раз за один открытый ордер?
Помогите пожалуйста исправить ошибки в этой функции. Уже все соки из меня выжала. Суть функции, при достижении определенного профита функция должна закрыть половину ордера.
void CloseHalfOrder(){
for (int i = 0; i<=OrdersTotal(); i++)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic){//Нефига тут профиту делать, это так, для убыстрения....
if(OrderProfit()>= NormalizeDouble (TP*Point,Digits)) //А тут вообще непонятки что с чем сравниваете....
{
if (OrderType() == OP_BUY)
double Lots = OrderLots();
double HalfLot = NormalizeDouble (Lots*0.5,2);// Тут озаботится чтобы лот не стал меньше минимального
OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);
if (OrderType() == OP_SELL)
double Lots1 = OrderLots();
double HalfLot1 = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
}
}
}
}
}
да, и еще, а как сделать, чтобы она срабатывала только один раз за один открытый ордер?
Принцип частичного закрытия ордеров можете посмотреть здесь.
Спасибо. Но я все же в первую очередь хочу понять свои ошибки. Учусь все-так.. Тем боле, мне кажется, я очень близок к истине.
еще раз.. Функция не работает. Хочу понять ошибки. + как сделать чтобы она срабатывала только 1 раз для 1 открытого ордера? Заранее огромное спасибо)
еще раз.. Функция не работает. Хочу понять ошибки. + как сделать чтобы она срабатывала только 1 раз для 1 открытого ордера?
Не очень понятное условие один раз для ордера. Ну тут наверное глобальные переменные использовать придётся. Может быть несколько ордеров, и по каждому только один раз?
еще раз.. Функция не работает. Хочу понять ошибки. + как сделать чтобы она срабатывала только 1 раз для 1 открытого ордера?
У меня следующая ситуация. В советнике несколько модулей, каждый модуль занимает несколько пользовательских функций. Для того, чтобы не утонуть в коде, принял решение каждый модуль вынести в скрипты. Вот здесь приглянувшийся вариант вызова скрипта с эксперта. Но здесь возникает следующая проблема: при вызове скрипта надо передать ему некоторые параметры. Можно глобальными переменными. Какие ещё варианты можно придумать?
Сразу говорю: вариант "попроще" через iCustom() меня не устраивает по двум причинам. Во-первых, вызов модуля должен быть эпизодическим в памяти, а не постоянным. Во-вторых, индикаторными массивами я не пользуюсь.
Не очень понятное условие один раз для ордера. Ну тут наверное глобальные переменные использовать придётся. Может быть несколько ордеров, и по каждому только один раз?
в рынке может быть только один ордер. На данный момент эта функция вообще не работает.. почему-то. Но если она будет нормально работать, я так понимаю, что она будет срабатывать постоянно, пока профит больше установленного кол-ва пунктов. Ясное дело надо, чтобы она только один раз закрыла половину позиции и все. Но для начала хоть бы она вообще заработала)
У меня следующая ситуация. В советнике несколько модулей, каждый модуль занимает несколько пользовательских функций. Для того, чтобы не утонуть в коде, принял решение каждый модуль вынести в скрипты. Вот здесь приглянувшийся вариант вызова скрипта с эксперта. Но здесь возникает следующая проблема: при вызове скрипта надо передать ему некоторые параметры. Можно глобальными переменными. Какие ещё варианты можно придумать?
Сразу говорю: вариант "попроще" через iCustom() меня не устраивает по двум причинам. Во-первых, вызов модуля должен быть эпизодическим в памяти, а не постоянным. Во-вторых, индикаторными массивами я не пользуюсь.
Библиотекой оформить как вариант.