[IMPORTANT]3.1)После функции iCustom где нибудь в конце пишем строчкуну а как вы определяете?
if (Bid>=Open[0] )
void SetOrders() {
double ldStop=0, ldTake=0;
double pBid=Open[0]-DistanceSet*Point;
if (Bid>=Open[0] )
{
if (!ExistOrder(1)){
SetOrder(OP_SELLSTOP ,pBid, ldStop, ldTake, 4);
}
}
Не знаю или я правильно понял.здравствуйте, извините за глупый вопрос, не покажете урок с условиями?
Как сделать чтоб при запуске советника при первичной установке отложек не исполнялось условия
а после первичной установки ордеров это условие подключалось?PHP:if (Bid>=Open[0] )
хотел сначала функцию "return" но не получилось.
просто если так оставить ,при первоначальном запуске советника пока это условие не выполнится, ордера не поставятся
PHP:void SetOrders() { double ldStop=0, ldTake=0; double pBid=Open[0]-DistanceSet*Point; if (Bid>=Open[0] ) { if (!ExistOrder(1)){ SetOrder(OP_SELLSTOP ,pBid, ldStop, ldTake, 4); } }
if(buy_stop>0 && sell_stop>0)
{
if (Bid>=Open[0]);
}
Не знаю или я правильно понял.
Полистайте пару страниц назад. Там похожее было.
Сначало добавляй функцию подсчёта ордеров.
Выйдет что то похожее на
PHP:if(buy_stop>0 && sell_stop>0) { if (Bid>=Open[0]); }
Наверно надо не добавлять, а правильно условие на вход написать.eevviill...что нужно добавить в советник чтобы он не открывал ордера на каждой свече?
Наверно надо не добавлять, а правильно условие на вход написать.
Хмм. Ну а что ж там расказывать? С тех что я пробовал 94% пере или дорисовывались. Сигнал именно где появляется в советник не вставишь. Только по направлению.Добрый вечер Еevviill! Я вот что подумал, многие на форумах говорят про перерисовку индикаторов, запаздывание. Может сделаете урок по этой теме, а то всё советники и советники.
Хмм. Ну а что ж там расказывать? С тех что я пробовал 94% пере или дорисовывались. Сигнал именно где появляется в советник не вставишь. Только по направлению.
Наверно надо не добавлять, а правильно условие на вход написать.
17 урокНу а как проверить к-во ордеров если оно больше 0, то больше не открывать?
Уважаемый saenko. Если тебе лень читать мои уроки, то мне лень тебе объяснять.eevviill сделайте урок на тему индикаторы и методы их описания в советнике...
хотябы несколько пользовательских и основных...
eevviill мне не лень читать, просто не могу все и сразу прочитать и понять...Уважаемый saenko. Если тебе лень читать мои уроки, то мне лень тебе объяснять.
Эвил, привет!1) Разделительные знаки.
1.1) , (запятая) - применяется для отделения названий свойств некоторой операции. Может не понятно объяснил, но по примеру поймёте.
Пример
PHP:MarketInfo(Symbol(),MODE_LOTSTEP); 1.2) ; (точка с запятой) - используеться для завершения какого то расчёта. Смысл примерно такой как точка в конце предложения. 1.3) {} (квадратные скобки) - применяются для начала фунции и конца. 1.4) () (скобки) - в них(не всегда) записываются свойства операции. 1.5) " " (не знаю как называются) - то что в них не используется в самых расчётах, но можна выводить на экран или в настройки. 1.6) // или /* */ - используются для коментирования кода. Если // в начале строки то всё что дальше закрасится в серый цвет и експертом вообще не будет применятся. Если надо больше одной строки, то в начале /* и в конце */ надо поставить.
2) Операции.
Арифметические операции.
+Сумма величинx + 2 -Вычитание величин или изменение знакаx — 3, y = — y *Умножение величин3 * x /Частное от деленияx / 5 %Остаток от деленияminutes = time % 60 ++Добавление 1 к значению переменнойy++y = y + 1--Вычитание 1 из значения переменной
(+,-,*,/) - это все знают.
% Остаток от деления
++ Добавление 1 к значению переменной - тоесть x=6. Если х++, то х=7
-- Отнемание 1 из значения переменной
Операции присваивания
= Присваивание значения x=6
+= Увеличение значения переменной x+=3 значит x+3
-= Уменьшение значения переменной
*= Умножение значения переменной
/= Деление значения переменной
%= Остаток от деления значения переменной
Операции отношения
== Истина, если x равно y x == y
!= Истина, если x не равно y x != y
< Истина, если x меньше y x < y
> Истина, если x больше y x > y
<= Истина, если x меньше или равно y x <= y
>= Истина, если x больше или равно y x >= y
Логические операции
! (логическое отрицание)
|| (ИЛИ)
&& (И)
P.S. Завтра вечером будем писать простенький скрипт.
Там всё красиво разложено. Только арифметические операции криво вышли.Эвил, привет!
Можешь перепостить этот пост, если не трудно, с пробелами где надо, знаками препинания и абзацами, чтобы знаки препинания в тексте не мешались с переменными и символами mql-языка. Т.к. непонятно какой символ что обозначает, только в 50% разобрался. :-( Да и другим понятнее будет. Люблю порядок, и лень разбираться в непорядке)))
Тоже скоро примкну к твоей ветке ненадолго! =) ..Ненадолго - потому что я быстро учусь: в школе информатика - любимый предмет был...; html-язык с нуля самостоятельно за 1,5-2 мес. на 90% выучил и сайт заказчику сделал нормальный. =) (Сам себя не похвалишь - никто не похвалит ).
Арифметические операции.
+Сумма величинx +2
-Вычитание величин или изменение знакаx — 3, y = — y
*Умножение величин 3*x
/Частное от деленияx /5
%Остаток от деления minutes=time%60
++Добавление 1 к значению переменной y++y=y+1
--Вычитание 1 из значения переменной
(+,-,*,/) - это все знают.
% Остаток от деления
++ Добавление 1 к значению переменной тоесть x=6. Если х++, то х=7
-- Отнемание 1 из значения переменной
можно вопрос по 17 уроку?
Какое условие нужно поставить чтобы ордер открывался единыжды...
Например: открылся ордер по сигналу индикатора, потом он закрылся по стопу, но тут же открывается другой ордер в эту же сторону...что мне нужно сделать что бы этого не произошло?
bool new_open_buy=true;
bool new_open_sell=true;
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
{
if(OrderMagicNumber()==magic)
{
if(OrderType()==OP_BUY) new_open_buy=false;
if(OrderType()==OP_SELL) new_open_sell=false;
}
}
MA1=iMA(...,1);
MA2=iMA(...,2);
Close[2]<MA2 && Close[1]>MA1;