[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 583

 
BeerGod:

Ну таки образом делает отбор ордеров по заданным параметрам.

например https://www.mql5.com/ru/forum/131859/page3#434221

Функция NumberOfPositions().

Эта функция возвращает количество открытых в данный момент позиций. Более точный отбор подсчитываемых позиций задаётся внешними параметрами:

  • sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
  • op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
  • mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.


посмотрел 

Функция ModifyOrder().  https://forum.mql4.com/ru/38949#434195

 там есть 3 параметра которые надо ввести СВОИ. Два я догадался, третий - нет.

что такое  UseSound в следующей строке? 

---------------------------------------------------- 

 if (UseSound) PlaySound("alert.wav"); break; 

 
lottamer:


да пусть бы срабатывал -у меня одна позиция и один инструмент.

но ведь не работает!

ругается на ошибки в коде 

на вот это

---------------------------

int start()

  {

//----

   if OrdersTotal()>0

PlaySound ("alert.wav");

//----

   return(0);

  } 

-----------------------------

 

выдает 8 ошибок!!  


Поставьте условие (то, что после if) в круглые скобочки
 
TarasBY:

У Вас всё по-взрослому - на уровне искусства!!! ;)

А если по-серьёзному, - научитесь задумываться над тем, что только что написали. При нулевых значения СТОПов по Вашей формуле стоплосс и тэйк профит равны цене открытия ордера, что НЕДОПУСТИМО. Ещё какие-нибудь решения сможете предложить (а на пацанском: "сможете напрячь мозх"??? :)))


:)) ой, а можно и мне на "пананском" следующий момент прояснить?

 

чем отличаются функции start от void ?

 
TarasBY:

...зря Вы так: если у человека не стимулировать работу серого вещества, он всю жизнь проведёт "на паперти" - "Подскажите, Христа ради!" :)))


Наверное вы правы, но у меня такие жизненные принципы -- если тебе не трудно, помогай другим, и когда понадобится -- помогут тебе. а в 55 лет менять привычки сложновато.

P.S. К тому же так я сам учусь. 

 
lottamer:


:)) ой, а можно и мне на "пананском" следующий момент прояснить?

чем отличаются функции start от void ?

Вы замахнулись на пока никем не достигнутое: "СРАВНИТЬ ПАЛЕЦ с  ХУ  ГОЛОВОЙ, к которой он приставлен"!!! :)))

первое - это функция, а второе - это тип возвращаемого ею значения.

P.S. Наберитесь терпения и прочтите.

 
Спасибо!!!!
 
lottamer:


:)) ой, а можно и мне на "пананском" следующий момент прояснить?

 

чем отличаются функции start от void ?

 

У меня даже слов нет, потому что и то, и то я просто использую.

 

Старт выполняется на каждом тике, а воид- это обьявляется  функция , которая не выдает наружу результат расщёта.

  

 

 

 
lottamer:


:)) ой, а можно и мне на "пананском" следующий момент прояснить?

 

чем отличаются функции start от void ?

  

 

 

void -- это не функция, это тип возвращаемого функцией значения. В данном случае функция ничего не возвращает. А    start  --это основная функция в терминале. без нее нельзя запустить никакую функцию, кроме init() deinit().Она запускается автоматически с приходом каждого тика(для экспертов и индикаторов)или при запуске программы(для всех программ), и что вы в ней поместите, то и будет работать. А вообще вам надо почитать учебник. 
 
TarasBY:

Вы замахнулись на пока никем не достигнутое: "СРАВНИТЬ ПАЛЕЦ с ХУ  ГОЛОВОЙ, к которой он приставлен"!!! :)))


первое - это функция, а второе - это тип возвращаемого ею значения.


туман не рассеялся....

 

что такое Void ? зачем он вообще нужен?

 

даже start тоже непонятен: зачем? код и так исполняется с самого начала....или нет?

все что я читал - туманно...для меня 

 

Код исполняется с самого начала. Это верно. Но сигналом для егоисполнения является приход в терминал нового тика. На выходные, когда котировок нет, ничего и не происходит. 

Допустим, это все способ говорить. Возьмите щас и впишите какую-то команду в init. Он исполняется только один раз, независимо от тиков.

Впишите туда

 OrderSend (Symbol( ), OP_BUY, lot ,Ask, 5, 00,   0, NULL, 450, 0, CLR_NONE);
 OrderSend (Symbol( ), OP_SELL,  lot ,NormalizeDouble(Bid, Digits), 5, 0, 0, NULL, 450, 0, CLR_NONE); 

 Киньте на график, и скажите, что получилось.


Типерь то же самое впишите в функцию старт, и вновь кинте на график. Напишите, что типерь получилось.