Добро пожаловать на курс MQL4 - страница 8

 

Справиться с ошибками

Я все еще получаю в OrderModify ошибку 1 с новой покупкой 208-210

stringo говорит

Вы должны вставить в ваш источник проверку параметров перед вызовом функции ModifyOrder.

Это правда? Я не доверяю этому парню.

С наилучшими пожеланиями

Aquilez

cnt=OrdersTotal()-1;

while(cnt>=0)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==false) break;

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) // && Reversed==False)

{

Print("Билет ",OrderTicket()," изменен.");

if (OrderType()==OP_SELL)

{

if (ExitWithOpenOrdersBasedON && myOrderTypetmp==2)

{

PreviousOpenOrders=OpenOrders+1;

ContinueOpenOpening=False;

text = text +"\nЗакрытие всех заказов.";

Print("Закрытие всех ордеров.");

//return(0)

}

если (TrailingStop>0)

{

if ((OrderOpenPrice()-OrderClosePrice())>=(TrailingStop*Point+Pips*Point))

{

if (OrderStopLoss()>(OrderClosePrice()+TrailingStop*Point))

{

result=OrderModify(OrderTicket(),OrderOpenPrice(),OrderClosePrice()+TrailingStop*Point,OrderClosePrice()-TakeProfit*Point-TrailingStop*Point,0,Purple);

if(result!=TRUE) Print("LastError = ", GetLastError());

else OrderPrint();

return(0);

}

}

}

}

if (OrderType()==OP_BUY)

{

if (ExitWithOpenOrdersBasedON && myOrderTypetmp==1)

{

PreviousOpenOrders=OpenOrders+1;

ContinueOpenOpening=False;

text = text +"\nЗакрытие всех заказов.";

Print("Закрытие всех ордеров.");

//return(0);

}

если (TrailingStop>0)

{

if ((OrderClosePrice()-OrderOpenPrice())>=(TrailingStop*Point+Pips*Point))

{

if (OrderStopLoss()<(OrderClosePrice()-TrailingStop*Point))

{

result=OrderModify(OrderTicket(),OrderOpenPrice(),OrderClosePrice()-TrailingStop*Point,OrderClosePrice()+TakeProfit*Point+TrailingStop*Point,0,ArrowsColor);

if(result!=TRUE) Print("LastError = ", GetLastError());

else OrderPrint();

return(0);

}

}

}

}

}

cnt-;

}

 

новичок

спасибо за введение. возможно, прошло несколько лет с тех пор, как вы его создали, но оно по-прежнему очень полезно.

с уважением,

fiaraz

 

Требуется помощь - требуется эксперт по советникам

Здравствуйте,

Мне интересно, может ли кто-нибудь помочь мне - Я делаю советника, используя пользовательский индикатор под названием " slope-direction-line.mq4 " Индикатор представляет тренд двумя цветами - лаймовым для восходящего тренда и красным для нисходящего - Так как же определить советника для продажи или покупки в соответствии с этими двумя цветами. Я пробовал следующее, но это не работает - так что если вы можете помочь мне, пожалуйста, сделайте это.

if (iCustom(NULL, 0, "slope-direction-line",0) < iCustom(NULL, 0, "slope-direction-line",0))

и вот ссылка на индикатор https://www.mql5.com/en/forum.

Заранее спасибо

 
 

Большое спасибо.

 

Большое спасибо Coderguru, NewDigital и всем друзьям за очень полезное обучение, надеюсь, что когда-нибудь я смогу сделать свою собственную новую программу Mql. Да благословит вас всех Бог

С уважением,

Спанар.

 

как передать параметр цвета

дорогой сэр,

У меня проблема: как передать параметр в пользовательскую функцию difine:

пример :

CreateObject("Test1", Green);

CreateObject("Test2",C'236,130,0')

CreateObject("Test3",32768)

void CreateObject(string Name1,int DefineColor)

{

ObjectCreate(Name1,OBJ_LABLEL,WindowFind("Indicato r1"),0,0);

ObjectSetText(Name1, "Testing",12, "Arial Bold:,DefineColor);

1. как передать цвет для зеленого, C'235,130,0,' или 32768

2. в функции User define, каков тип цвета? Может быть строка? int? double или color? Я пробовал, но не получилось

3. какой тип переменной для цвета, или можно ли преобразовать из interger, string в переменную типа color?

4. не могли бы вы показать мне url для решения подобной проблемы.

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

с уважением, Боб

 

помощь.....help.........help...............help

привет

можете ли вы помочь мне использовать этот код индикатора

iMAOnArray(?????,?????,?????,????,??????,i);

пожалуйста, с примером

спасибо

 
mercury_man:
привет

можете ли вы помочь мне использовать код этого индикатора

пожалуйста, с примером

спасибо

Здравствуйте,

Я переместил ваше сообщение в эту тему. Посмотрите сообщения 20#.

Итак:

double iMAOnArray( double array[], int total, int period, int ma_shift, int ma_method, int shift)Вычисление скользящей средней по данным, хранящимся в числовом массиве. В отличие от iMA(...), функция iMAOnArray не принимает данные по имени символа, таймфрейму, применяемой цене. Данные о цене должны быть подготовлены заранее. Индикатор рассчитывается слева направо. Чтобы получить доступ к элементам массива как к массиву серий (т.е. справа налево), необходимо использовать функцию ArraySetAsSeries. Параметры:

array[] - Массив с данными. total - Количество элементов для подсчета. 0 означает весь массив. period - Период усреднения для расчета. ma_shift - Сдвиг MA ma_method - Метод MA. Это может быть любое значение из перечисления методов скользящей средней. shift - Индекс значения, взятого из буфера индикатора (сдвиг относительно текущего бара на заданное количество периодов назад). Пример:

double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);

double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);

double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);

double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);

//----

if(maprev=macurrentslow)

Alert("пересечение вверх");

 

iMAOnArray

iMAOnArray - это не индикатор, а функция, которая рассчитывает скользящую среднюю по массиву!

Если вы поищете в моих уроках, вы найдете ответ и более подробную информацию о iMAOnArray.

mercury_man:
привет

можете ли вы помочь мне использовать код этого индикатора

пожалуйста, с примером

спасибо вам
Причина обращения: