Помогите со скриптом, пожалуйста, новичку - страница 2

 
artmedia70:

Может вам автоторговлю отрубил ДЦ ?


Vladon:

проведите нормализацию может поможет.


Что такое нормализация? Дилинговый Центр запретил автоторговлю? Но я недавно совсем (парочку месяцев назад начал изучать MQL4)...До этого НИ разу не торговал по советникам и пр...Вроде бы, даже не успел провиниться еще чем-то, чтобы ДЦ запрещал это...
P.S.
Прошу прощения за такие глупые вопросы, просто я на данный момент непродвинутый юзер. Вроде бы, я следовал пунк в пункт по учебнику Сергея Ковалева по MQL4. Перепроверил весь код. Все вышеописанное не помогло.

 
Ну попробуйте запусть любой другой скрипт из комплекта МТ4, если не работает то автоторговля отключена со стороны ДЦ. Отключить могли из за бесконечных обращений на сервер каким либо скриптом (флуд сервера).
 
Travi_Claus:



Что такое нормализация? Дилинговый Центр запретил автоторговлю? Но я недавно совсем (парочку месяцев назад начал изучать MQL4)...До этого НИ разу не торговал по советникам и пр...Вроде бы, даже не успел провиниться еще чем-то, чтобы ДЦ запрещал этого...
P.S.
Прошу прощения за такие глупые вопросы, просто я на данный момент непродвинутый юзер. Вроде бы, я следовал пунк в пункт по учебнику Сергея Ковалева по MQL4. Перепроверил весь код. Все вышеописанное не помогло.

Не, на демо не отключат. При отправке торговых запросов на сервер, все цены в торговом приказе должны быть нормализованы. Например, цена стоплосс должна быть не просто рассчитана, но и нормализована: double sl=NormalizeDouble(Bid-StopLoss*Point,Digits) - и только после нормализации, уровень цены СтопЛосс ордера (в этом примере это sl) должен быть вставлен в команду отправки торгового приказа OrderSend()

Так попробуйте:

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,NormalizeDouble(Bid-15*Point,Digits),NormalizeDouble(Bid+15*Point,Digits));
Alert(GetLastError());
   return;                                   // Выход из start()
  }
 
BeerGod:
Ну попробуйте запусть любой другой скрипт из комплекта МТ4, если не работает то автоторговля отключена со стороны ДЦ. Отключить могли из за бесконечных обращений на сервер каким либо скриптом (флуд сервера).


artmedia70:
Не, на демо не отключат. При отправке торговых запросов на сервер, все цены в торговом приказе должны быть нормализованы. Например, цена стоплосс должна быть не просто рассчитана, но и нормализована: double sl=NormalizeDouble(Ask-StopLoss*Point,Digits) - и только после нормализации, уровень цены СтопЛосс ордера (в этом примере это sl) должен быть вставлен в команду отправки торгового приказа OrderSend()

Попробовал включить стандартный скрипт, который был в торговом терминале: тоже не заработал. Если меня забанили за случайный флуд, то что делать? Куда-то жаловаться или ждать?
 
Travi_Claus:


Попробовал включить стандартный скрипт, который был в торговом терминале: тоже не заработал. Если меня забанили за случайный флуд, то что делать? Куда-то жаловаться или ждать?

Завести новый демосчет, если не поможет обраться в службу поддержки ДЦ. Или поменять ДЦ.
 
BeerGod:

Завести новый демосчет, если не поможет обраться в службу поддержки ДЦ. Или поменять ДЦ.

Попробовал через другой, реальный счет уже, через другую торговую платформу другого брокера создать этот же скрипт - все равно не работает. Выводит ошибку 4062 (Ожидается параметр типа string). При условии, что на реальном счете ни разу не флудил (не пользовался советниками/скриптами).
 
artmedia70:

Не, на демо не отключат. При отправке торговых запросов на сервер, все цены в торговом приказе должны быть нормализованы. Например, цена стоплосс должна быть не просто рассчитана, но и нормализована: double sl=NormalizeDouble(Bid-StopLoss*Point,Digits) - и только после нормализации, уровень цены СтопЛосс ордера (в этом примере это sl) должен быть вставлен в команду отправки торгового приказа OrderSend()

Так попробуйте:



Сделал так, как вы написали, все равно показывает ошибку 4109. Вот никак не могу понять, почему у комментаторов выше те же самые скрипты работают, а у меня не работают и показывает ошибки разные. Вроде бы на 2-х разных платформах торговых двух разных брокеров на 2-х разных счетах (демо и реальном) попробовал эти скрипты. Показывает только ошибки. Никак не могу понять этой причины. И, вроде бы, все по учебнику Сергея Ковалева делаю. Скрипт-то простой, 100 раз перепроверил - нет там ошибки...Создаю его ради того, чтобы просто получить эмпирический опыт, знания и "почувствовать" на простых примерах, как это все работает. Но, увы, второй день думаю, почему такой просто скрипт не запускается - не понимаю...

 
Travi_Claus:

Попробовал через другой, реальный счет уже, через другую торговую платформу другого брокера создать этот же скрипт - все равно не работает. Выводит ошибку 4062 (Ожидается параметр типа string). При условии, что на реальном счете ни разу не флудил (не пользовался советниками/скриптами).
Передаёте неверные параметры в функцию. Она ждёт параметр с типом string, а вы подсовываете другой тип.
 

1. Суффиксы / префиксы у символов есть? Может в этом дело?

2. Если брокер запрещает торговлю с предустановленными стопами/тейками ваш скрипт не сработает, но вроде ошибку другую должен выдавать.

3. Если 5-знак, то Bid - 15*Point может быть слишком близким стопом у вашего брокера. Опять же другая ошибка - но стOит исключить все возможные проблемы, дедуктивный метод так сказать :)

 
Travi_Claus:


Сделал так, как вы написали, все равно показывает ошибку 4109. Вот никак не могу понять, почему у комментаторов выше те же самые скрипты работают, а у меня не работают и показывает ошибки разные. Вроде бы на 2-х разных платформах торговых двух разных брокеров на 2-х разных счетах (демо и реальном) попробовал эти скрипты. Показывает только ошибки. Никак не могу понять этой причины. И, вроде бы, все по учебнику Сергея Ковалева делаю. Скрипт-то простой, 100 раз перепроверил - нет там ошибки...Создаю его ради того, чтобы просто получить эмпирический опыт, знания и "почувствовать" на простых примерах, как это все работает. Но, увы, второй день думаю, почему такой просто скрипт не запускается - не понимаю...

Покажите тот код, который выдаёт ошибку 4109. Вообще, не имейте привычки заставлять общество гадать. А то сюда пошлют же...
Причина обращения: