вопрос к программистам - страница 3

 
Murman >>:

Самый простой способ это проверить, создать клон программы,в ней сделать как Вы хотите, затем прогнать по истории по-очереди

обе программы, с одинаковыми параметрами и сравнить оба стейта. Если они будут одинаковыми, то скорее всего у Вас получилось. :)

Я вам предложил это как вариант, я сам не программист.

 

Спасибо Вам. Я проверяю, на демо. Надеюсь что ничего другого в программе не испортится :) . и даже если не будет работать, то все равно спасибо. Просто возник вопрос: то что я убрал #define ( символическое имя константы) вообще на что нибудь влияет? Если да, то на что? Может это надо как то вернуть? Только я не знаю как?

С уважением, Азер.

 

добрый вечер. Т.к. эта ветка моя, я решил тут и спросить.

может ктонибудь показать готовый код который закрывал бы перекрытые ордера по максимуму( возможность котороя есть в терминале) . или может гдето это уже есть. т.к. если эта возможность заложена в терминале то она ведь как то там запрограммированна. наверное. может скажете как туда подглядеть? заранее спасибо всем кто откликнется .

 

Либо вопрос сложный и ни кто не знает ответа, либо наоборот очень прост и ни кто не хочет тратить время на пустяки. И честно говоря жаль что ни кто не отреагировал .

 

extern double StopProfit = 5; -------- внешняя переменная, действительное число . вопрос : почему я не могу придать ему отрицательное значение ?? если задаю отрицательное то советник начинает просто выставлять ордера и тут же их удалять . насколько я помню действительные числа это все числа и ноль .

вот еще 2 строчки в советнике с этим пораметром :

первая в : expert start function

" StopProfit=", DoubleToStr(StopProfit, 2), AccountCurrency());

вторая в : Управление ордерами и позициями.

if (GetProfitOpenPosInCurrency(NULL, -1, Magic)>=StopProfit)

 
azik1111:

extern double StopProfit = 5; -------- внешняя переменная, действительное число . вопрос : почему я не могу придать ему отрицательное значение ?? если задаю отрицательное то советник начинает просто выставлять ордера и тут же их удалять . насколько я помню действительные числа это все числа и ноль .

вот еще 2 строчки в советнике с этим пораметром :

первая в : expert start function

" StopProfit=", DoubleToStr(StopProfit, 2), AccountCurrency());

вторая в : Управление ордерами и позициями.

if (GetProfitOpenPosInCurrency(NULL, -1, Magic)>=StopProfit)


придать отрицательное значение можете, но вопрос в том как вы используете эту переменную.

по той информации что вы дали - вам в Клуб Телепатов https://www.mql5.com/ru/forum/133408

 

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

 
azik1111:

extern double StopProfit = 5; -------- внешняя переменная, действительное число . вопрос : почему я не могу придать ему отрицательное значение ?? если задаю отрицательное то советник начинает просто выставлять ордера и тут же их удалять . насколько я помню действительные числа это все числа и ноль .

вот еще 2 строчки в советнике с этим пораметром :

вторая в : Управление ордерами и позициями.

if (GetProfitOpenPosInCurrency(NULL, -1, Magic)>=StopProfit)

что делает функция GetProfitOpenPosInCurrency()?

мой телепат говорит, что в данной определяется, что ордер надо закрывать как только набежит профит равный StopProfit

соответственно если поставить скажем "-30", то условие сразу выполнится и ордер будет закрыт

 

а как исправить это ? какую строчку посмотреть ? я не програмист . и как условие отрицательного значения прибыли может быть выполнено если ордера отложенные ?

 
azik1111:

а как исправить это ? какую строчку посмотреть ? я не програмист . и как условие отрицательного значения прибыли может быть выполнено если ордера отложенные ?


если не программист - выложите весь код

или пусть телепаты скажут какую строчку посмотреть

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