Как кодировать? - страница 57

 
nondisclosure007:
Я пытаюсь понять, что здесь не так. Я написал этот маленький индикатор, чтобы попытаться выяснить, почему я не могу нарисовать стрелки на каждом отдельном баре на графике. Никаких веских причин для этого нет.

У меня есть другой индикатор, над которым я работаю, который будет осторожен в выборе, я написал это, чтобы попытаться выяснить, в чем проблема.

Он рисует стрелку только в нижней части свечи на последних нескольких барах. Он должен рисовать стрелки на каждом баре на графике сверху и снизу каждой свечи.

И только данные 1 свечи отображаются в окне данных.

Я приложил картинку и индикатор. Любая помощь будет признательна.

Вы должны объявить два буфера : #property indicator_buffers 2

 
Michel:
Вы должны объявить два буфера : #property indicator_buffers 2

Вау. Не могу поверить, что я это пропустил.

Теперь они появляются на каждой свече. Я даже ввел простое сравнение с ima, чтобы посмотреть, могу ли я определить, какой из них. Это тоже работает. Теперь все, что мне нужно сделать, это посмотреть на мой оригинальный индикатор, который дает мне проблему, и сравнить два.

спасибо!

 
ralph.ronnquist:
Вы уверены? Вы "сжимали" шкалу цен, чтобы убедиться, что она не рисует за пределами текущего окна?

Вы были правы. они там были, просто не там. я изменил формулу, где ставить стрелку. теперь они все отображаются.

 

Стоплосс по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...........

Но это, кажется, не работает, пожалуйста, помогите изменить это, чтобы это работало, спасибо!

 
nondisclosure007:
Вы были правы. они были там, просто не там. я изменил формулу, где ставить стрелку. теперь они все отображаются.

Также необходимо сбросить значение avgRange на 0 перед циклом.

avgRange = 0;

for (counter=i ;counter<=i+9;counter++)

{

avgRange=avgRange+MathAbs(High[counter]-Low[counter]);

}

Роберт

 

У вас есть лишняя линия красного цвета, которая может вызвать проблему.

Роберт

Jovager:
Я хочу поставить стоплосс по 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;

}

}

}

}

Открытие работает, а выход по стоплоссу нет.

Спасибо за помощь.

Джо
 
 
Slakerz:
Привет, ребята, я пытался понять, как поставить StopLoss... мой советник выглядит следующим образом,

...

Кто такой этот CHinGsMAroonCLK?

Насколько я помню, этот советник не что иное, как 10p3 от elCactus, но, возможно, я ошибаюсь...

Посмотрите его тему, возможно, вы найдете то, что ищете: https://www.mql5.com/en/forum/174975.