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

 

Свойства эксперта

У меня вопрос, на который, возможно, кто-то уже нашел ответ. Я заметил, что некоторые советники не отображают окно свойств после загрузки на график, а некоторые советники делают несколько проходов, прежде чем окно свойств появляется, в то время как у других советников окно свойств появляется сразу. Это происходит независимо от того, каким способом я пытаюсь получить доступ к свойствам советника - правой кнопкой мыши на советнике, затем свойства / левой кнопкой мыши на смайлике или F7. Это заставило меня задуматься, но, возможно, есть очевидный ответ, о котором я не знаю. Спасибо за любое понимание этого.

С уважением, CJA

 

Попробуйте это

ObjectDescription( string name)

Возвращает описание объекта. Для объектов типов OBJ_TEXT и OBJ_LABEL будет возвращен текст, нарисованный этими объектами.

 

работает

Большое спасибо! Это сработало. Ужасные учебники и помощь по mql!!!

 
g.pociejewski:
[lang=pl]Я автор. Я прилагаю файл mq4 для Avasys. Я не знаю, кто изменил в коде функцию isGoodTime. В моем терминале она работает. Avasys, почему вы так нервничаете? Если у вас есть проблемы, просто свяжитесь со мной, а не говорите об этом на форуме.[/lang].

Я разобрался.

советник работает нормально

спасибо

 

Помощь по S&P500

Привет всем. Я довольно новичок в программировании метатрейдера (всего месяц или два), но я программировал в NinjaTrader около 4-5 лет. У меня есть простая стратегия, которая торгует S&P, Light Sweet Crude и EURUSD, которую я адаптировал для работы на MT4. Кроме нескольких незначительных изменений, она уже готова. Она отлично работает на EURUSD и Crude, а также на любой валютной паре, которую я ставлю для тестирования. Проблема заключается в S&P. Думаю, вам нужно немного узнать о стратегии, чтобы понять суть проблемы. Это довольно простая стратегия временного прорыва. Она рассчитывает максимум и минимум за определенный период времени, и когда бар закрывается выше или ниже этой точки, она совершает сделку (длинную, если выше, короткую, если ниже). Итак, предположим, что бар закрылся выше и пошел в лонг. Если бар закрывается ниже минимума, он закрывает лонг и переходит в шорт с размером лота в 2 раза больше и пытается вернуть все, что потерял, и первоначальную цель. Он продолжает разворачиваться до тех пор, пока цель не будет достигнута, или пока он не развернется x раз (что задается внешней переменной). Теперь все, насколько я могу судить, работает нормально. Он принимает сделку и удваивается, как и должен, и когда он достигает цели, он возвращает все свои потери, а также первоначальную цель. На S&P, однако, время от времени, когда он достигает цели, он практически безубыточен. Он возвращает потерянное более или менее, но не получает прибыли. В моем коде это выглядит так: значение пункта цели хранится в двойной переменной с именем slip. Когда она разворачивается, после закрытия сделки она берет цену открытия - цену закрытия (если длинная) или цену закрытия - цену открытия (если короткая), добавляет это к slip, затем делит slip пополам. В коде: slip = (slip + (OrderOpenPrice() - OrderClosePrice()))/2; затем он округляет его так, чтобы получилась полезная цена. Поскольку S&P движется с шагом в .25, NormalizeDouble не будет работать с ним, поэтому я решил преобразовать его в тики, затем normalizedouble, чтобы это было целое число, а затем снова преобразовать его в значение пункта. В коде:

slip = NormalizeDouble((slip / point), 0);

slip = NormalizeDouble((slip* point), Digits);

Итак, вы знаете, что point - это переменная, которая = Point или, если она находится на S&P = 0.25 (поскольку S&P движется с шагом в .25, но мой брокер, по крайней мере, сообщает Point как .01).

Я считаю, что проблема должна быть в этих двух маленьких кусочках кода, потому что целью является OrderOpenPrice() + slip (если длинный). Любые мысли или предложения будут оценены по достоинству.

 

Индикатор на массиве

Я ищу решение для применения алгоритмики индикаторов на массиве цен.

В MQL4 некоторые индикаторы имеют такую функцию, например: iCCIOnArray, iBandsOnArray....

Но у таких индикаторов как ADX такой функции нет.

Кто-нибудь знает, как можно применить расчет индикатора по заранее заданному массиву (не с сервера котировок)?

 

Значение функции IsTradeAllowed()

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

Я написал ea, которое имеет следующие строки кода в его стартовой функции:

if(IsTradeAllowed()==false)

{

Alert("You have to activate your ea first or there is a disconnection between the server connection!");

return;

}

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

Иа активирована и интернет соединение существует.

Как это может произойти?!!!!

 

НУЖНА ПОМОЩЬ!!! CCI выходит, если значение ниже предыдущего значения. помогите мне pls!!!!!

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

Я новичок в советниках. могу ли я узнать, как установить выход, если текущее значение CCI ниже/выше предыдущего значения?

if(iCCI(NULL,0,7,PRICE_TYPICAL,0)>iCCI(NULL,0,7,PRICE_TYPICAL,1))?

Мне очень нужна помощь!

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

Я написал ea, которая имеет следующие строки кода в его функции запуска:

if(IsTradeAllowed()==false)

{

Alert("You have to activate your ea first or there is a disconnection between the server connection!");

return;

}

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

При этом ea активирована и подключение к Интернету существует.

Как такое могло произойти?!!!!

Похоже на вашу кодировку, посмотрите здесь ответ

Ошибка 146 ("Торговый контекст занят") и как с ней бороться - Статьи по MQL4

 
calvin1006:
Привет,

я новичок в советниках. могу ли я узнать, как установить выход, если текущее значение CCI ниже/выше предыдущего значения?

if(iCCI(NULL,0,7,PRICE_TYPICAL,0)>iCCI(NULL,0,7,PRICE_TYPICAL,1)) ??

Мне очень нужна помощь!

Попробуйте что-нибудь вроде

if(iCCI(NULL,0,7,PRICE_TYPICAL,0) != iCCI(NULL,0,7,PRICE_TYPICAL,1)) ??

Причина обращения: