Помогите новичку [как сделать чтобы он локировал с определённого уровня(например когда ордер достигнет -30 или -40)]!
Здравствуйте,
я не давно начал изучать mql4 может кто то из опытных программистов
поможет. Есть скрипт он локирует ордера как только они уходят в минус,
как сделать чтобы он локировал с определённого уровня(например когда
ордер достигнет -30 или -40) который можно будет прописывать в
свойствах.
void start()
{
double Lots=0;
for(int i=0;i<OrdersTotal();i++)
{
if(!OrderSelect(i,SELECT_BY_POS))
continue;
if(OrderSymbol()!=Symbol())
continue;
if(OrderType()==OP_BUY)
Lots+=OrderLots();
if(OrderType()==OP_SELL)
Lots-=OrderLots();
}
if(Lots>0)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,NULL,Red);
if(Lots<0)
OrderSend(Symbol(),OP_BUY,-(Lots),Ask,3,0,0,NULL,Blue);
}
Да просто ставьте стоп на требуемом уровне.
Да просто ставьте стоп на требуемом уровне.
Мне не нужно ставить стоп, мне нужно что бы локировало с определённого минусового значения.
Мне не нужно ставить стоп, мне нужно что бы локировало с определённого минусового значения.
Думаете, есть разница?
Думаете, есть разница?
Что во фразе "Мне не нужно ставить стоп, мне нужно что бы локировало с определённого минусового значения" вам не понятно?
И разница есть она в том что ставить стоп это ставить стоп, а открывать локирующий ордер это открывать локирующий ордер. Они хоть и приследуют одну цель, но это разные вещи и мне нужен конкретно локирующий ордер!
Ну хоть кто-нибудь помогите.
В результате (в смысле, для состояния счета) лок или стоп разницы нет.
Если более конкретно по Вашему вопросу: что именно не получается ? Или просто не можете составить алгоритм ?
В результате (в смысле, для состояния счета) лок или стоп разницы нет.
Если более конкретно по Вашему вопросу: что именно не получается ? Или просто не можете составить алгоритм ?
Я не понимаю что и где нужно прописать или объявить что бы локировало.
Просто объявить не получится, а прописать ))))))) - нужно написать программу, которая пересчитает открытые позиции, сравнит и проверит наличие встречных, проверит на наличие нужного расстояния. И все это - плата за самообман ;).
Напишите сначала функцию, которая посчитает размер открытых встречных позиций.
Здравствуйте,
я не давно начал изучать mql4 может кто то из опытных программистов
поможет. Есть скрипт он локирует ордера как только они уходят в минус,
как сделать чтобы он локировал с определённого уровня(например когда
ордер достигнет -30 или -40) который можно будет прописывать в
свойствах.
void start()
{
double Lots=0;
for(int i=0;i<OrdersTotal();i++)
{
if(!OrderSelect(i,SELECT_BY_POS))
continue;
if(OrderSymbol()!=Symbol())
continue;
if(OrderType()==OP_BUY)
Lots+=OrderLots();
if(OrderType()==OP_SELL)
Lots-=OrderLots();
}
if(Lots>0)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,NULL,Red);
if(Lots<0)
OrderSend(Symbol(),OP_BUY,-(Lots),Ask,3,0,0,NULL,Blue);
}
На самом деле этот скрипт локирует ВСЕ неперекрытые ордера, какие найдет, независимо от результата по прибыли/убытку.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, я не давно начал изучать mql4 может кто то из опытных программистов поможет. Есть скрипт он локирует ордера как только они уходят в минус, как сделать чтобы он локировал с определённого уровня(например когда ордер достигнет -30 или -40) который можно будет прописывать в свойствах.
void start()
{
double Lots=0;
for(int i=0;i<OrdersTotal();i++)
{
if(!OrderSelect(i,SELECT_BY_POS))
continue;
if(OrderSymbol()!=Symbol())
continue;
if(OrderType()==OP_BUY)
Lots+=OrderLots();
if(OrderType()==OP_SELL)
Lots-=OrderLots();
}
if(Lots>0)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,NULL,Red);
if(Lots<0)
OrderSend(Symbol(),OP_BUY,-(Lots),Ask,3,0,0,NULL,Blue);
}