[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 298

 
Roger:

Может потому, что скрипт писался давно, еще было 4 знака, теперь 5. Надо увеличить величины стопов и тейков в 10 раз.


Спасибо за ответ,но немного не понял. Ведь когда например я запрашиваю iOpen(Symbol(),PERIOD_H4,0),он мне дает цену с 4 знаками после точки.Хотя да,вообще цена котируется с 5 знаками.Так а что делать?Как заставить выдавать цены с 5 знаками?я немного не понял что сделать

И если можно, подскажите пожалуйста, как лучше прописать кол-во лотов,которое должен использовать ордер на открытие?(предполагается использовать 10% от свободных средств для торговли на счету) ?

Буду очень благодарен

 

Подскажите пожалуйста, при тестировании советника - какой бы период не выбирал он тестирует только последние 2-3 недели... Почему так?

Хочу протестировать год =((

 
kon12:
Правильно?

Похоже, да. Только не забудьте проверить в тестере.
 
Boneshapper:


Спасибо за ответ,но немного не понял. Ведь когда например я запрашиваю iOpen(Symbol(),PERIOD_H4,0),он мне дает цену с 4 знаками после точки.Хотя да,вообще цена котируется с 5 знаками.Так а что делать?Как заставить выдавать цены с 5 знаками?я немного не понял что сделать

И если можно, подскажите пожалуйста, как лучше прописать кол-во лотов,которое должен использовать ордер на открытие?(предполагается использовать 10% от свободных средств для торговли на счету) ?

Буду очень благодарен


Цену он дает с 5-ю знаками, видите Вы только 4, но не в этом заковыка. Обычно, при открытии ордеров для задания стопа используют относительную величину в пипсах и потом домножают ее на величину пипса. Т.е, если Вы задали 50 пипсов стоп и, при величине пипса (для 4-х знаков) 0.0001 у Вас получится разница между ценой открытия и стопом 0.005, но при 5-ти знаках величина пипса - 0.00001 и это будет всего 0.0005, что не позволит Вам открыть ордер из-за слишком короткого стопа.

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

 
w_ersoc:

Подскажите пожалуйста, при тестировании советника - какой бы период не выбирал он тестирует только последние 2-3 недели... Почему так?

Хочу протестировать год =((


Наверное, истории не хватает. Протяните график мышкой назад, чтобы он подкачал данные с сервера.
 
Roger:


Цену он дает с 5-ю знаками, видите Вы только 4, но не в этом заковыка. Обычно, при открытии ордеров для задания стопа используют относительную величину в пипсах и потом домножают ее на величину пипса. Т.е, если Вы задали 50 пипсов стоп и, при величине пипса (для 4-х знаков) 0.0001 у Вас получится разница между ценой открытия и стопом 0.005, но при 5-ти знаках величина пипса - 0.00001 и это будет всего 0.0005, что не позволит Вам открыть ордер из-за слишком короткого стопа.

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


Ок,обязательно попробую.СПасибо большое вам за ответы!
 

Уважаемые профессионалы,пожскажиет пожалуйста почему предопределенная функция MarketInfo(Symbol (),MODE_POINT) возвращает постоянно 0.И пред.переменная Point тоже все время равно 0.Она же должна возвращать стоимость одного пункта?

И такой вопрос ордер не открывается,хотя прописал вроде верно.Подскажите пожалуйста

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0.0050;
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP,Lime);

 

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

 
david2:

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


смотри здесь - точно есть. В разделе - работы с ордерами и позициями...
 
Boneshapper:

Уважаемые профессионалы,пожскажиет пожалуйста почему предопределенная функция MarketInfo(Symbol (),MODE_POINT) возвращает постоянно 0.И пред.переменная Point тоже все время равно 0.Она же должна возвращать стоимость одного пункта?

И такой вопрос ордер не открывается,хотя прописал вроде верно.Подскажите пожалуйста

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0.0050;
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP,Lime);


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

Для примера смотри, нормализацию ТР, кроме этого - нажми на F1 на ф-ии нормализации и внимательно прочитай справку по ней - NormalizeDouble ().

Кроме того - проверь размер лота 0,01 - это микро лот, попробуй вбей 0,1 - у тебя возможно счет не микро, кроме этого твой брокер может не разрешать ставить сразу вместе с открытием ордера стоп - лосс и тейкпрофит этого же ордера.

..........
TP = NormalizeDouble ((PRICE + Mul1*iATR(Symbol(), 0, ATRPeriod_3, 1)), Digits) ;      // TakeProfit (цена)
         
         if (TP<Level_new*Point) TP=Level_new*Point;   // Если меньше допустимого, то допустимый  
         
         Ticket=OrderSend(Symbol(),4,Lots_New,PRICE,5,SL,TP,"Classiс_3_screen",Magic,0,Green); 
...........
Причина обращения: