Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не могли бы вы помочь мне добавить оповещение к этому фильтру, когда он пересекает 0 уровень или меняет цвет. Спасибо тем, кто хочет мне помочь...
Возможно, вам больше повезет, если вы напишете здесь: https://www.mql5.com/en/forum.
Сколько в настоящее время открыто ордеров на покупку и продажу у советника
Я только что просмотрел 134 страницы в надежде, что кто-то уже ответил на этот вопрос. Но мне не повезло...
После создания и настройки каждого типа пересечения, и разворотной точки, и диапазона ATR, и стратегии отбоя, которые я могу придумать с сотнями различных индикаторов, которые у меня есть. Я понял, что для полноценного автоматического советника нужны тонны переменных, для которых нужно писать код. Поэтому вместо этого я начинаю создавать советники с помощью пользователя. Что ж, перейдем к вопросам...
Какой код можно использовать для подсчета количества открытых ордеров на покупку и открытых ордеров на продажу, открытых советником в данный момент на рынке.
Я не хочу, чтобы он считал общее количество открытых ордеров, потому что я буду выставлять ордера на том же счете, чтобы компенсировать текущие ордера, которые выставил советник.
В конечном итоге я хотел бы настроить фильтры, которые будут изменять соотношение ордеров на покупку и продажу для целей хеджирования.
Небольшая помощь, пожалуйста...
Привет всем,
Я первоначально разместил эту тему как новую, но она была перемещена в другую тему по программированию (у меня нет возражений против ее перемещения BTW) и теперь, кажется, потерялась из-за количества плакатов в этой теме.
Возможно, кто-то здесь сможет мне помочь?
Я почти закончил свой первый советник после почти 7 дней проб и ошибок, вырезания и вставки и многочасового исследования.....
Может кто-нибудь подсказать мне, как сделать функцию выхода или стопа для советника?
Я хочу, чтобы советник удалял все текущие и отложенные сделки и выходил после достижения 10,000 в эквити. Ниже приведена часть кода на данный момент:
int total = OrdersTotal(), cnt = 0, ExitAtEquity=10000;
for (cnt = total ; cnt >=0 ; cnt-- )
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if (AccountEquity ()== ExitAtEquity)//(TimeCurrent()- OrderOpenTime() >= ActiveMinutes*60 )
{if(OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
if(OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
if(OrderType()>OP_SELL)
OrderDelete(OrderTicket());
StopTrade=true;}
}
if (dclose==dopen && OrdersTotal() < ConcurrentTrades && StopTrade != true)Как вы можете видеть, советник смотрит на эквити и затем устанавливает значение bool переменной StopTrade в true. Затем советник подтверждает команду и не обрабатывает ничего при значении StopTrade != true в течение одного цикла, но затем значение bool переменной StopTrade сбрасывается, и торговля продолжается.
Во-первых, есть ли способ заставить это делать то, что мне нужно, в том виде, в котором я это делаю?
Во-вторых, есть ли функция, которую я могу использовать, чтобы просто сказать советнику выйти из системы?
Любая помощь будет высоко оценена.
NB.
Я думаю, что часть моего кода может помочь вам в том, что вам нужно.
Я подумал, что цикл, который будет перебирать все открытые ордера, будет началом, но я не знаю, что сказать советнику, чтобы он просматривал только ордера, размещенные советником, и игнорировал ордера, которые я разместил вручную. Спасибо.
Магическое число
cutzpr - вам нужно использовать магическое число, а затем использовать что-то вроде следующего:
for (cnt=total;cnt>=0;cnt--)
{
OrderSelect(0,SELECT_BY_POS,MODES_TRADES);
if (OrderMagicNumber()==yourmagicnumber)
{if(OrderType()==OP_BUY)
Взглянув на этот код, я придумал вот этот кусок кода. Я не уверен, правильно ли он закодирован. Я установил
int MaxLong=5, MaxShort=5;
extern double Magic=10000;
extern int MaxOpenOrders=10;
итак...
if (b<=MaxLong)
{ торговля
}
if (s<=MaxShort)
{ торговля
}
Но советник все равно посылает максимальную покупку и максимальную продажу. Вместо того, чтобы посчитать, сколько ордеров есть в каждом из них, и ограничиться MaxLong и Short. Я знаю, что в коде должно быть что-то не так, но я не могу этого увидеть.
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber()==Magic)
{if(OrderType()==OP_BUY)
{
b++; // add order to Long Quantity
if(TP != 0)
{
if(b!= 0)
{
if(Bid >= ((OrderOpenPrice()+TP*Poin)+Spread))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // Long position closed.
CMT=OrderCloseTime();
b--; // Long Order closed. Remove one order from total Longs
return(0);
}
}
}
}
if (OrderMagicNumber()==Magic)
{if(OrderType()==OP_SELL)
s++; // Add one to Short order Quantity
if (TP != 0)
{
if(s!= 0)
{
if(Ask <= ((OrderOpenPrice()-TP*Poin)+Spread))
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // Short position closed.
CMT=OrderCloseTime();
s--; // Short Order Closed. Remove one order from total shorts
return(0);
}
}
}
}
}Взглянув на этот код, я придумал вот такую часть кода. Я не уверен, правильно ли он закодирован. Я установил
int MaxLong=5, MaxShort=5;
extern double Magic=10000;
extern int MaxOpenOrders=10;
так...
if (b<=MaxLong)
{ торговля
}
if (s<=MaxShort)
{ торговля
}
Но советник все равно посылает максимальную покупку и максимальную продажу. Вместо того, чтобы посчитать, сколько ордеров есть в каждом из них, и ограничиться MaxLong и Short. Я знаю, что в коде должно быть что-то не так, но я не могу этого увидеть.
Я думаю, что вы слишком усложняете ситуацию. Попробуйте использовать несколько коротких частей кода вместо одной большой функции. Это должно дать вам некоторую подсказку:
int totalOrders(int type)
{
int totalNumber = 0;
for (int cnt = total ; cnt >=0 ; cnt-- )
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderType() == type) totalNumber++;
}
return(totalNumber);
}
[/CODE]
AND HERE IS EXAMPLE HOW YOU CAN USE IT
[CODE]
int totalBuy = totalOrders(OP_BUY);
int totalSell = totalOrders(OP_SELL);
if( (totalBuy + totalSell) < MaxOpenOrders)/*TOTAL NUMBER OF ORDERS WASN'T REACHED*/
{
if(totalBuy <= MaxLongOrders)
{
//OPENING LONG IS PERMITED
}
if(totalSell <= MaxShortOrders)
{
//OPENING SHORT IS PERMITED
}
}
[ASK] Индикатор "SilverTrend_Signal"
Я новичок в форексе и программировании на mql4. У меня есть индикатор SilverTrend_Signal (прикрепляю здесь) и
Я хочу сделать советника на основе этого индикатора, но у меня есть проблема с этим индикатором, сигнал может меняться
на одном и том же баре, например, стрелка сигнала восходящего тренда появляется на графике, затем может исчезнуть и, возможно.
может смениться на стрелку нисходящего тренда в том же баре. Может ли кто-нибудь помочь мне решить эту проблему?
Я использую этот индикатор на временном периоде M1 и EU.
Большое спасибо.
(Извините, мой английский недостаточно хорош).
Мое личное мнение заключается в том, что вам следует держаться подальше от использования индикаторов, которые перерисовывают сигналы. Особенно на графике M1. Сигналы будут меняться слишком часто. Вы просто напрашиваетесь на нестабильные сигналы и проблемы. Прошлая история выглядит хорошо, потому что это прошлое.
Я новичок в форексе и программировании на mql4. У меня есть индикатор SilverTrend_Signal (прикрепляю здесь) и
я хочу сделать советника на основе этого индикатора, но у меня есть проблема с этим индикатором, сигнал может меняться
на одном и том же баре, например, стрелка сигнала восходящего тренда появляется на графике, затем может исчезнуть и может
может смениться на стрелку нисходящего тренда в том же баре. Может ли кто-нибудь помочь мне решить эту проблему?
Я использую этот индикатор на временном периоде M1 и EU.
Большое спасибо.
(извините, мой английский не достаточно хорош)Не уверен насчет того, как он перерисовывается, но если он перерисовывается ТОЛЬКО на текущем баре, то использование сигнала на закрытии бара (подтвержденного) будет в порядке.
Если он перерисовывает больше, чем на текущем баре, то можно забыть об использовании его сигнала для советника.
FerruFx