[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 202

 
если уж и мерять пипсы тогда разность умножать на MODE_POINT из MarketInfo()
 
splxgf >>:
если уж и мерять пипсы тогда разность умножать на MODE_POINT из MarketInfo()

"Чукча, ты не умничай, ты пальцем покажи!"

из зюйд_вест_три_румба_вправо

Пример, пожалуйста :)

 
tmp.0 >>:
Не факт :)

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


double x = (double)a / (double)b;


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

 
tmp.0 >>:

"Чукча, ты не умничай, ты пальцем покажи!"

из зюйд_вест_три_румба_вправо

Пример, пожалуйста :)

int start()
  {
//----
for(int i=1; i<=500; i++) 
   {
    int candle=MathAbs((High[i]-Low[i])*MarketInfo(Symbol(), MODE_POINT));
    int sum=sum+candle;
   }  
//----
double total_size=sum/500;
Alert(" средний размер свечи (High-Low) = ",total_size);
//----
   return(0);
  }



хотя если говорить о среднем размер свечи я бы еще брал размер свечки по модулю, с нашими ДЦ минимум может быть больше максимума.
 
splxgf >>:

Тольк тогда вот так:

int candle=MathAbs((High[i]-Low[i])/MarketInfo(Symbol(), MODE_POINT));


Коллективный разум - страшная сила :)

 
tmp.0 >>:

Тольк тогда вот так:


Коллективный разум - страшная сила :)


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

 
dmmikl86 писал(а) >>

помогите не пойму: почему Alert=0 ???

вот код скрипат - считает средний размер свечи

int start()
  {
//----
double sum=0;
double candle;
for(int i=1; i<=500; i++) 
   {
    candle=High[i]-Low[i];
    sum=sum+candle;
   }  
//----
double total_size=sum/500.0;
Alert(" средний размер свечи (High-Low) = ",total_size);
//----
   return(0);
  }
 
Уважаемые знатоки, помогите, пожалуйста, разобраться с функцией OrderCloseBy(). Что-то я совсем запутался. У меня есть эксперт, который открывает и закрывает позиции по зеркально противоположным условиям. То есть условия OPEN BUY и CLOSE SELL совпадают, также как и OPEN SELL и CLOSE BUY, таким образом сразу после закрытия одной позиции по той же цене открывается позиция в другую сторону с тем же объёмом. Вот я и решил попробовать заменить OrderClose(), открытием позиции в противоположную сторону в удвоенном объёме и затем закрытием встречных ордеров функцией OrderCloseBy(). То есть получиться должно было в итоге тоже, но с экономией одного спреда с каждой сделки, но что-то тестер показывает совсем другое. Вот я и не могу понять, то ли я код неправильно написал, то ли сама идея мной неправильно понята... Очень буду благодарен Вам за разъяснения...
 
Dmirtiy >>:
То есть получиться должно было в итоге тоже, но с экономией одного спреда с каждой сделки, но что-то тестер показывает совсем другое. Вот я и не могу понять, то ли я код неправильно написал, то ли сама идея мной неправильно понята... Очень буду благодарен Вам за разъяснения...

Если все это только из-за эконмии спреда, то скажу, что на этом спред вы не съэкономите!!! С удвоенного лота, удвоенный спред, точнее комиссия за спред, т.е. к примеру 2п. спреда с 1 лота это 20$, с 2 лотов теже 2п. 40$

PS бесплатных пряников не бывает)))

 
А как же тогда получается, что закрытие встречных ордеров по OrderCloseBy() на примере в учебнике, выгодней чем их отдельное закрытие?
Причина обращения: