![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо.![](https://c.mql5.com/forextsd/smiles/smile.png)
иногда решение бывает таким простым.....
Как добавить комментарий, чтобы показать, сколько позиций на покупку и продажу открыто в любой момент времени по каждой паре.
double Buy.cm = MarketInfo(Symbol(),MODE_TRADES); ??? buy
double Sell.cm = MarketInfo(Symbol(),MODE_TRADES); ??? sell
Спасибо
Бено
Если у вас есть функция, которая подсчитывает ордера, просто адаптируйте ее, чтобы иметь переменную счетчика для покупок и продаж. Затем напишите комментарий как обычно.
Lux
Если у вас есть функция, которая подсчитывает ордера, просто адаптируйте ее, чтобы иметь переменную счетчика для покупок и продаж. Затем напишите комментарий как обычно. Lux
Хорошо, спасибо, Люкс
Как добавить комментарий, чтобы показать, сколько позиций на покупку и продажу открыто в любой момент времени по каждой паре.
double Buy.cm = MarketInfo(Symbol(),MODE_TRADES); ??? buy
double Sell.cm = MarketInfo(Symbol(),MODE_TRADES); ??? sell
Спасибо
BenoВы можете сделать что-то вроде этого:
int Pos=0;
int Buy_Total=0;
int Sell_Total=0;
while (Open_Trades > Pos)
{
if (OrderSelect(Pos,SELECT_BY_POS,MODE_TRADES))
{
int Order_Type = OrderType();
if (Order_Type == OP_BUY)
{
Buy_Total++;
}
if (Order_Type == OP_SELL)
{
Sell_Total++;
}
}
Pos++;
}
Comment("\nBuy Orders Total = ",Buy_Total,
"\nSell Orders Total = ",Sell_Total);Или какую-нибудь вариацию.![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
Индикатор должен ссылаться на полосы Боллинджера
У меня есть этот индикатор, но мне нужно, чтобы он ссылался на полосы Боллинджера. Мне нужно, чтобы индикатор ссылался на полосы Боллинджера или рядом с ними и внутри свечи. Хотелось бы, чтобы он также ссылался на Стохастик. Есть идеи.
///------------------------------------------------------------------+
//| MS IPP2 v2 3/6/09 |
//| MarketSlayer |
//| BillTainter@gmail.com |
// +------------------------------------------------------------------+
#property copyright " MarketSlayer "
#property link "BillTainter@gmail.com"
#property indicator_chart_window
//---- входные параметры
extern int barsToProcess=1000;
// +------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
// +------------------------------------------------------------------+
int init ()
{
//---- индикаторы
//----
return (0);
}
// +------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
// +------------------------------------------------------------------+
int deinit ()
{
//----
int i;
for (i=0; i< Bars; i++)
{
ObjectDelete ("Bearish IPP2" +DoubleToStr (i, 0));
ObjectDelete ("Bullish IPP2" +DoubleToStr (i, 0));
}
//----
return (0);
}
// +------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
// +------------------------------------------------------------------+
int start ()
{
int counted_bars=IndicatorCounted (),
//----
предел,
i=0;
if (counted_bars> 0)
counted_bars-;
limit=Bars-counted_bars;
if (limit> barsToProcess)
limit=barsToProcess;
while (i< limit)
{
// МЕДВЕЖИЙ IPP#2
// Свеча[1] находится на верхней полосе Боллинджера или около нее
// Свеча[2] находится внутри свечи[1]
if ((Close [ i+2] > Open [ i+2]) && (Close [ i+1]> Open) && (Open > Close [ i+1])
&& (High Low [ i+1]))
{
ObjectCreate ("Bearish IPP2" +DoubleToStr (i, 0), OBJ_ARROW, 0, Time , High + 50*Point);
ObjectSet ("Bearish IPP2" +DoubleToStr (i, 0), OBJPROP_ARROWCODE, 130);
ObjectSet ("Bearish IPP2" +DoubleToStr (i, 0), OBJPROP_COLOR, Red );
Alert("Bearish IPP2 -SHORT @", Low);
}
// Бычий IPP#2
if ((Close [ i+2] < Open [ i+2]) && (Close [ i+1]< Open) && (Open < Close [ i+1])
&& (High Low [ i+1]))
{
ObjectCreate ("Bullish IPP2" +DoubleToStr (i, 0), OBJ_ARROW, 0, Time , Low - 50*Point);
ObjectSet ("Bullish IPP2" +DoubleToStr (i, 0), OBJPROP_ARROWCODE, 130);
ObjectSet("Bullish IPP2" +DoubleToStr (i, 0), OBJPROP_COLOR, Lime );
Alert("Bullish IPP2 -LONG @", High,Time);
// PlaySound("alert.wav");
}
i++;
}
//----
return (0);
}
//+------------------------------------------------------------------+
есть ли способ проверить, был ли последний ордер закрыт при достижении tp, sl или без достижения одного из них?
Приветствую![](https://c.mql5.com/forextsd/smiles/smile.png)
Может ли кто-нибудь помочь мне добавить звуковое оповещение к этому индикатору?
Спасибо!
Есть ли способ проверить, был ли последний ордер закрыт по достижению tp, sl или без достижения одного из них? Приветствую
Если OrderClosePrice() равен OrderStopLoss(), то ордер был закрыт по достижению sl.
Преобразование индикатора в советника
Привет всем,
У меня возникла проблема с советником RSI и MA...
У меня индикатор работает правильно... Все, что я хочу, это преобразовать его в советник...
Я попробовал пару вещей. IndicatorCounted() не работает в советнике, поэтому я попытался жестко закодировать значения в цикле for (bar=0; bar<15; bar++), я получил правильный RSI, но SMA не дает правильных значений...
Я прилагаю код для SMA, пересекающей RSI...
Так что не мог бы кто-нибудь помочь мне преобразовать этот индикатор в советника.
***************************************************************************************************************************************
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LawnGreen
#property indicator_color2 DarkBlue
double ExtMapBuffer1[];
double ExtMapBuffer2[];
int init()
{
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(1,ExtMapBuffer2);
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int bar, limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-IndicatorCounted();
for(bar=0; bar<limit; bar++)
ExtMapBuffer1 = iRSI(NULL,0,14,PRICE_TYPICAL,bar);
for(bar=0; bar<limit; bar++)
ExtMapBuffer2=iMAOnArray(ExtMapBuffer1,Bars,14,0,MODE_SMA,bar);
return(0);
}
***************************************************************************************************************************************
Спасибо и с уважением,
Ганеш