Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 872

 
rapid_minus:

Ну, я совсем запутался:  OrdBuy_1( ) - функция, открывающая БАЙ на условиях №1, которые указаны выше этой функции. Только наверное правильнее тип double , а не int, ведь она возвращает цену открытия ордера. И как я понимаю, я ее не вставлял ни в какую функцию, она стоит отдельно, после int start(), извлечения значений всех необходимых индикаторов, и анализа сложившейся ситуации на рынке.(ошибаюсь?). 

А как нормализовать стоп и тейк, а лучше - как их вообще не задавать? 

И не понял насчет проверки. Наверное я неправильно понял учебник - " bool OrderClose (int ticket, double lots, double price, int slippage, color Color=CLR_NONEФункция закрытия рыночного ордера." А что такое проверка?

В общем, чем дальше, тем тупее :(. 

С чего бы решили, что вот так верно?

//Локальная переменная, открывающая ордер БАЙ
   int OrdBuy_1() = (OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-1500*Point,Bid+1500*Point));

У вас написано - переменная. Но две круглые скобки означают, что это вы объявили функцию. Внутри другой функции. А далее идёт не её описание, а присвоение.

И, если вы говорите, что она у вас должна возвращать цену открытия, то почему тогда сравниваете значение с истиной?

if (OrdBuy_1()==true)                              //Если был открыт ордер №1, то...

Вообще-то OrderSend() возвращает номер тикета открытой позиции при успехе. Иначе -1 при ошибке. Для того, чтобы узнать что за ошибка, нужно просмотреть содержимое последней ошибки GetLastError() и, при возможности обработать код ошибки, возвращаемый торговым сервером (об этом я и говорил).

Вы проверяете номер тикета на "истину" (true). А это либо 0 (false), либо любое, отличное от нуля значение (true). При ошибке OrderSend() вернёт -1, а это true, и что тогда?

 
artmedia70:
Высчитывайте виртуальную линию вместо реальной.

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

Перевернул так, но как с циклом расчета индикатора сопоставить. Может есть какой другой более техничный  способ перевернуть индексацию?

for(i=limit;i>=0;i--)
   {
   Bar[i]=Bar[i+1]+1;
   }
 
Forexman77:

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

Перевернул так, но как с циклом расчета индикатора сопоставить. Может есть какой другой более техничный  способ перевернуть индексацию?

 

Зачем? Используйте бар и цену двух точек линии для того, чтобы получить цену рассчитываемого бара:

double EquationDirect(double x1, double y1, double x2, double y2, double x) {return((x2==x1)?y1:(y2-y1)/(x2-x1)*(x-x1)+y1);}

x1 - бар первой точки линии, y1 - цена первой точки, x2 и y2 - бар/цена второй точки линии, x - номер бара, на котором нужно узнать цену.

 
artmedia70:

Зачем? Используйте бар и цену двух точек линии для того, чтобы получить цену рассчитываемого бара:

x1 - бар первой точки линии, y1 - цена первой точки, x2 и y2 - бар/цена второй точки линии, x - номер бара, на котором нужно узнать цену.

Ок. Спасибо.
 
Всем доброго времени суток!Подскажите пожалуйста как осуществить в советнике закрытие всех позиций на следующий день в 23.00,в течении дня проблем нет( if (Hour_curr>=нужное время) ,а вот с переносом через 00.00 часов как-то туго .Заранее благодарю.
 
aleks_pavlenko:
Всем доброго времени суток!Подскажите пожалуйста как осуществить в советнике закрытие всех позиций на следующий день в 23.00,в течении дня проблем нет( if (Hour_curr>=нужное время) ,а вот с переносом через 00.00 часов как-то туго .Заранее благодарю.
Если день открытия позиции не равен дню, когда нужно её закрыть.
 
artmedia70:
Если день открытия позиции не равен дню, когда нужно её закрыть.
Верно,день открытия не равен дня закрытия,как это в mq4 реализовать.
 

Добрый день! Не понял, как какую-либо часть кода ( напр, описание и вычисление глобальных переменных) оформить в виде включаемого файла?

Каким образом файлу присваивается расширение mgh?

Уменьшает ли включаемый файл занимаемый экспертом объем? 

Спасибо. 

 
rapid_minus:

Добрый день! Не понял, как какую-либо часть кода ( напр, описание и вычисление глобальных переменных) оформить в виде включаемого файла?

Каким образом файлу присваивается расширение mgh?

Уменьшает ли включаемый файл занимаемый экспертом объем? 

Спасибо. 

Включаемым может быть и обычный .mq4, не обязательно .mqh, даже компилировать не нужно. Включаемый файл отличается отсутствием спецфункций OnInit(), OnDeinit(), OnTick и т.д.

На объём имполняемого файла никак не влияет, что инклюдником, что весь код одним куском, код инклюдника ведь включается  в конечный исполняемый код.

 
evillive:

Включаемым может быть и обычный .mq4, не обязательно .mqh, даже компилировать не нужно. Включаемый файл отличается отсутствием спецфункций OnInit(), OnDeinit(), OnTick и т.д.

На объём имполняемого файла никак не влияет, что инклюдником, что весь код одним куском, код инклюдника ведь включается  в конечный исполняемый код.

Правильно ли я понял - пишем кусок кода без функций init(), start() и прочих, сохраняем его как файл .mqh, и все? Можем поместить его в Каталог_терминала\experts\include и он будет вызываться и исполняться без проблем?

Спасибо. 

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