![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я пытаюсь понять, что здесь не так. Я написал этот маленький индикатор, чтобы попытаться выяснить, почему я не могу нарисовать стрелки на каждом отдельном баре на графике. Никаких веских причин для этого нет.
У меня есть другой индикатор, над которым я работаю, который будет осторожен в выборе, я написал это, чтобы попытаться выяснить, в чем проблема.
Он рисует стрелку только в нижней части свечи на последних нескольких барах. Он должен рисовать стрелки на каждом баре на графике сверху и снизу каждой свечи.
И только данные 1 свечи отображаются в окне данных.
Я приложил картинку и индикатор. Любая помощь будет признательна.
Вы должны объявить два буфера : #property indicator_buffers 2
Вы должны объявить два буфера : #property indicator_buffers 2
Вау. Не могу поверить, что я это пропустил.
Теперь они появляются на каждой свече. Я даже ввел простое сравнение с ima, чтобы посмотреть, могу ли я определить, какой из них. Это тоже работает. Теперь все, что мне нужно сделать, это посмотреть на мой оригинальный индикатор, который дает мне проблему, и сравнить два.
спасибо!
Вы уверены? Вы "сжимали" шкалу цен, чтобы убедиться, что она не рисует за пределами текущего окна?
Вы были правы. они там были, просто не там. я изменил формулу, где ставить стрелку. теперь они все отображаются.
Стоплосс поMACD
Я хочу установить стоплосс по MACD.
У меня есть такой код :
double Mach=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,TradeBar);
double vMach=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,TradeBar+1);
double vvMach=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,TradeBar+2);
GlobalVariableSet("mt_Vager1"+Symbol()+Period(),mtr);
GlobalVariableSet("l_Vager1"+Symbol()+Period(),TP_SL_Inc);
if (TotalOrders(Magic_Number)>0){
bool g=false;
while (!g){
g=true;
for (int kli=OrdersTotal()-1;kli>=0;kli--){OrderSelect(kli,SELECT_BY_POS);
if
(OrderMagicNumber()==Magic_Number && OrderType()==OP_BUY && Mach<vMach && vMach<vvMach)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,Pink);
g=false;
break;
}
if (OrderMag
icNumber()==Magic_Number && OrderType()==OP_SELL && m1>m2 && m11<=m21)
(OrderMagicNumber()==Magic_Number && OrderType()==OP_SELL && Mach>vMach && vMach>vvMach)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage,Pink);
g=false;
break;
}
}
}
}
Открытие работает, а выход по стоплоссу нет.
Спасибо за помощь.
Jo
MACD стоплосс
Читать TradeBar
Я подумал, что могу ограничить количество оповещений, запускаемых триггером, используя следующее:
if(trigger == 1)
{
int StartWaitingTime = GetTickCount();
if(GetTickCount() - StartWaitingTime > MaxWaiting_sec * 1000)
{
if(ShowAlert == true) {
Alert("Buy...........
Но это, кажется, не работает, пожалуйста, помогите изменить это, чтобы это работало, спасибо!
Вы были правы. они были там, просто не там. я изменил формулу, где ставить стрелку. теперь они все отображаются.
Также необходимо сбросить значение avgRange на 0 перед циклом.
avgRange = 0;
for (counter=i ;counter<=i+9;counter++)
{
avgRange=avgRange+MathAbs(High[counter]-Low[counter]);
}
Роберт
У вас есть лишняя линия красного цвета, которая может вызвать проблему.
Роберт
Я хочу поставить стоплосс по MACD.
У меня такой код :
double Mach=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,TradeBar);
double vMach=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,TradeBar+1);
double vvMach=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,TradeBar+2);
GlobalVariableSet("mt_Vager1"+Symbol()+Period(),mtr);
GlobalVariableSet("l_Vager1"+Symbol()+Period(),TP_SL_Inc);
if (TotalOrders(Magic_Number)>0){
bool g=false;
while (!g){
g=true;
for (int kli=OrdersTotal()-1;kli>=0;kli--){OrderSelect(kli,SELECT_BY_POS);
if
(OrderMagicNumber()==Magic_Number && OrderType()==OP_BUY && Mach<vMach && vMach<vvMach)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,Pink);
g=false;
break;
}
if ( OrderMag
icNumber()==Magic_Number && OrderType()==OP_SELL && m1>m2 && m11<=m21) (OrderMagicNumber()==Magic_Number && OrderType()==OP_SELL && Mach>vMach && vMach>vvMach)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage,Pink);
g=false;
break;
}
}
}
}
Открытие работает, а выход по стоплоссу нет.
Спасибо за помощь.
ДжоПривет, ребята, я пытался понять, как поставить StopLoss... мой советник выглядит следующим образом,
...
Кто такой этот CHinGsMAroonCLK?
Насколько я помню, этот советник не что иное, как 10p3 от elCactus, но, возможно, я ошибаюсь...
Посмотрите его тему, возможно, вы найдете то, что ищете: https://www.mql5.com/en/forum/174975.