Maximov7: Пытаюсь написать своего первого советника...Подскажите пожалуйста как зафиксировать Ask, обьявив ее через переменную, при этом она должна быть глобальной ибо должна восприниматся каждой специальной функцией....помогите пожааааааалуйста)))
Ну да объявите переменную double сразу за внешнеми параметрами эксперта, присваивайте ей значение Ask когда надо, используйте когда вздумается в любых функциях. Хотя правильне использовать локальные переменные и передавать их в качестве аргументов... И разберитесь с областями видимости переменных, это азы, без этого все равно никуда.
В том то и дело я так сделал, но внутри функции start() ее не видно, а в журнале пишется что с самого начала переменной было присвоено не значение Ask в тот промежуток времени а просто 0.
поставьте Print() там где вызывается функция ClosePosBySizeProfitInPercent("0", -1, Magic, VashParametrPR); перед ней.
Параметры задаются явно. Может все же какие-то недокументированные ограничения есть? Например кол-во процедур макс, или длинна имени процедур? Все же работало. Не стало работать после добавления новой процедуры, а она вообще другую задачу выполняет.
На этом форуме я первый раз, извиняюсь если не там написал.
Нужна помощь - добавить к советнику виртуальный ТП ( в пунктах и\или при достижении заданного значения прибыли).
Помогите пожалуйста!
С уважением, Роман.
Начните писать код сами и вам тут помогут и объяснят, что не понимаете. Если же желаете заказать доработку советника, тогда вам в платные услуги программистов
Пытаюсь написать своего первого советника...Подскажите пожалуйста как зафиксировать Ask, обьявив ее через переменную, при этом она должна быть глобальной ибо должна восприниматся каждой специальной функцией....помогите пожааааааалуйста)))
Ну да объявите переменную double сразу за внешнеми параметрами эксперта, присваивайте ей значение Ask когда надо, используйте когда вздумается в любых функциях. Хотя правильне использовать локальные переменные и передавать их в качестве аргументов... И разберитесь с областями видимости переменных, это азы, без этого все равно никуда.
В том то и дело я так сделал, но внутри функции start() ее не видно, а в журнале пишется что с самого начала переменной было присвоено не значение Ask в тот промежуток времени а просто 0.
extern double C1; C1 = Ask;
extern double C2; C2 = Bid;
int start()
{
OrderSend("EURUSD",OP_BUY,0.1,C1,3,Bid-0.0009,Ask+0.0009);
Для точной уверенности
поставьте Print() там где вызывается функция ClosePosBySizeProfitInPercent("0", -1, Magic, VashParametrPR); перед ней.
double C1;
// в старте
C1 = Ask;
в старте нельзя потому что при каждом новом тике будет присваиватся новое значение Ask....а нужно его застолбить для дальнейшей роботы
double C1;
// в старте
C1 = Ask;
в старте нельзя потому что при каждом новом тике будет присваиватся новое значение Ask....а нужно его застолбить для дальнейшей роботы
напишите в init()
правда не совсем понятно зачем вам нужен Ask момента запуска
Доброго всем времени суток!
На этом форуме я первый раз, извиняюсь если не там написал.
Нужна помощь - добавить к советнику виртуальный ТП ( в пунктах и\или при достижении заданного значения прибыли).
Помогите пожалуйста!
С уважением, Роман.
Доброго всем времени суток!
На этом форуме я первый раз, извиняюсь если не там написал.
Нужна помощь - добавить к советнику виртуальный ТП ( в пунктах и\или при достижении заданного значения прибыли).
Помогите пожалуйста!
С уважением, Роман.
во сколько вы оцените работу по моей проблеме?
Вот еще такой вопрос.... есть открытый ордер допустим такой:
OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);
как открыть другой ордер при условии(if) что этот закроется по тейкпрофиту????