Кто подскажет почему MODE_POINT != Point

 

Привожу фрагмент скрипта, который, в числе прочего, должен в поле комментарий таблицы «Терминала» выводить Сумму убытка по стоп лоссу открытого ордера и сколько пунктов потребуется для покрытия этого убытка новым ордером с увеличенным объемом –варианты объемов есть в переменных «extern double»

double RR=MODE_POINT;

V_Lot = Lot [L40]; //Объем лота = 0,1 ( это -1 пункт 1 доллар). Второй лот =0,2.

Ub=V_Lot*Point*Distance; //extern int Distanceэто величина стоп-лосса 20

NormalizeDouble(Ub,2);

double UB= MathRound(Ub);

Bu= Ub/(V_Lot*Point); //Количество пунктов для безубытка.

NormalizeDouble(Bu,1);

int BU = MathRound(bu_240);

Comment = "У"+(UB)+", БУ"+(BU);

В таком виде комментарий выглядит так: У0.04000000,БУ20

Если в выделенных цветом строках Point меняю на RR Bu= Ub/(V_Lot*RR);

тогда комментарий выглядит по другому У44.00000000,БУ20

Кто подскажет почему это происходит, разве MODE_POINT != Point и как избавиться от лишних нулей После «У44.»

 
Vekker писал(а) >>

Привожу фрагмент скрипта, который, в числе прочего, должен в поле комментарий таблицы «Терминала» выводить Сумму убытка по стоп лоссу открытого ордера и сколько пунктов потребуется для покрытия этого убытка новым ордером с увеличенным объемом –варианты объемов есть в переменных «extern double»

double RR=MODE_POINT;

V_Lot = Lot [L40]; //Объем лота = 0,1 ( это -1 пункт 1 доллар)

Ub=V_Lot*Point*Distance; //extern int Distanceэто величина стоп-лосса 20

NormalizeDouble(Ub,2);

double UB= MathRound(Ub);

Bu= Ub/(V_Lot*Point); //Количество пунктов для безубытка.

NormalizeDouble(Bu,1);

int BU = MathRound(bu_240);

Comment = "У"+(UB)+", БУ"+(BU);

В таком виде комментарий выглядит так: У0.04000000,БУ20

Если в выделенных цветом строках Point меняю на RR Bu= Ub/(V_Lot*RR);

тогда комментарий выглядит по другому У44.00000000,БУ20

Кто подскажет почему это происходит, разве MODE_POINT != Point и как избавиться от лишних нулей После «У44.»

Действительно, MODE_POINT не равно Point. Все правильно

Но если использовать PR=MarketInfo(Symbol(),MODE_POINT), то PR и Point будут равны между собой.

 

Point это переменная в которой храниться единица пункта, MODE_POINT это идентификатор запроса в MarketInfo

double point =MarketInfo("EURUSD",MODE_POINT); point==Point

 
Vinin писал(а) >>

Действительно, MODE_POINT не равно Point. Все правильно

Но если использовать PR=MarketInfo(Symbol(),MODE_POINT), то PR и Point будут равны между собой.

Спасибо. Век живи век учись! А я всего месяц пытаюсь понять язык.

А есть ли возможность пошагового прогона программы для отслеживания измененией значений пересменных. Что- то типа отладчика в бухгалтенрской !-С?

 
Urain писал(а) >>

Point это перевенная в которой храниться единица пункта, MODE_POINT это идентификатор запроса в MarketInfo

double point =MarketInfo("EURUSD",MODE_POINT); point==Point

Спасибо. Только так и не понятно на что множится количество пунктов, когда в Терминале в графе Прибыль получаетмя "-23.44"?

И ка избавиться от лишних нулей справа после точки?

 
Vekker писал(а) >>

Спасибо. Век живи век учись! А я всего месяц пытаюсь понять язык.

А есть ли возможность пошагового прогона программы для отслеживания измененией значений пересменных. Что- то типа отладчика в бухгалтенрской !-С?

Отладчика нет. И не будет. Для отладочной печати можно использовать Print() или Comment();

 
Vinin писал(а) >>

Отладчика нет. И не будет. Для отладочной печати можно использовать Print() или Comment();

Благодарю. будем осваивать.

 

Еще я многое узнал в динамике через Alert();

Например как и что считает цикл...

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