Спрашивайте! - страница 58

 

Параметры stoploss и takeprofit в OrderSend - это "ценовые значения", а не пипсы. Попробуйте вместо этого использовать "Ask-stoploss*Point" и "Ask+takeprofit*Point"; когда дело доходит до написания советника, не только тренд является вашим другом, но и руководство ;-)

 
ralph.ronnquist:
Параметры stoploss и takeprofit в OrderSend - это "ценовые значения", а не пипсы. Попробуйте вместо этого использовать "Ask-stoploss*Point" и "Ask+takeprofit*Point"; когда дело доходит до написания советника, не только тренд является вашим другом, но и руководство ;-)

Ральф,

Большое спасибо за ваши терпеливые и вежливые ответы. Я знаю, что ошибки были действительно глупыми. Как новичок, я не знал, с чего начать, когда советник прошел проверку компилятора, а тестер стратегий сказал, что он успешно загрузился, но не выдал никаких результатов.

Перед тем как отправить запрос, я попробовал кое-что близкое (но, очевидно, неправильное) к тому, что описано в руководстве. Эта ранняя версия прошла проверку компилятором, но тестер стратегий отверг синтаксис OrderSend. Поэтому я посмотрел на оператор OrderSend в советнике, в который я внес некоторые изменения, чтобы увидеть его синтаксис. Именно там я и обнаружил плохой синтаксис. Теперь я понимаю, что автор этого советника настраивал "stoploss" и "takeprofit" с помощью правильного синтаксиса перед выполнением оператора OrderSend.

У меня есть некоторый опыт программирования на Fortran и Basic, но язык MQL4 сейчас для меня сложен.

Еще раз спасибо за ваши краткие и вежливые ответы. Они были очень полезны.

Raft

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

 

нужна помощь с советником

привет всем,

Я пытаюсь преобразовать советника straddle в скрипт, может ли кто-нибудь подсказать мне, как это сделать?

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

 

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

 

Мне нужен скрипт, который сравнивает две цены и находит, какая из них выше.

например:

int a1, a2;

a1=1.1111;

a2=1.1112;

if(a1<a2)

{

Print("OK");

}

но это не так, потому что сравнение происходит только для чисел перед точкой.

Мне нужно сравнить полное число с десятичным.

Надеюсь, вы поймете, что я имею в виду, и поможете мне.

 

замените "int" на "double" следующим образом

double a1, a2;

прочитайте документацию о типах.

 

Ооо, я забыл об этом.

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

 

Почему возвращается 0.

iMA(NULL,0,10,-3,MODE_EMA,PRICE_HIGH,1);

Спасибо.

 

Как заставить функцию start() выполняться

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

В советнике функция start() будет запущена только при изменении цены пары на прикрепленном графике.

Хотелось бы узнать, можно ли ее запустить не дожидаясь изменения цены.

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

-erkao

 

Если вы хотите, чтобы программа выполнялась один раз.

вы можете использовать функцию init(), которая запускается при старте программы.

Спасибо.

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