[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 300
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пацаны, кто с Пятёрой - дружен. Гляньте, плз, мой индик к чемпу. Затык - никак не могу решить...
Перевод с 4-ки на пятёрку - там на форуме - тишина. Выложил код в ветвь - на эту страницу. Описание - на предыдущей.
Благодарю.
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, otp;
int dg, i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
// !!!!!!!!?????? ХОТЬ КТО-ТО МОЖЕТ ОБЪЯСНИТЬ ЗНАЧЕНИЕ СТРОК КОДА, КОТОРЫЕ НАЧИНАЮТСЯ С ЭТОГО МЕСТА?
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {// Если очередной ордер истории торгов выбран, то
dg=MarketInfo(sy, MODE_DIGITS);// переменная dg принимет значение дигитса по валютной паре, имя которой лежит в переменной sy
// далее я возможно не верно расставил приоритет скобок, но по сути должно быть так:
if (dg==0){// если дигитс равен нулю, то
if(StringFind(OrderSymbol(),"JPY")<0){// если в имени инструмента ордера найдена подстрока то (только это не правильно написано - функция может верноуть значение > 1)
dg=4;// дигитс принимает значение = 4
}
else{// иначе
dg=2;// дигитс принимает значение = 2
}
}
ocp=NormalizeDouble(OrderClosePrice(), dg);// нормализация цены закрытия ордера
otp=NormalizeDouble(OrderTakeProfit(), dg);// нормализация цены ТейкПрофита ордера
if (ocp==otp) return(True);
}
return(False);// команда вернуть из подпрограммы значение "ложь"
}
спасибо, а что такое дигитс?
Знаковость торгового инструмента - сколько у него там циферок после запятой.
Знаковость торгового инструмента - сколько у него там циферок после запятой.
то есть, если я знаю, что цифр 4, то код можно сократить так?:
int dg = 4;
............код
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
ocp=NormalizeDouble(OrderClosePrice(), dg);// нормализация цены закрытия ордераotp=NormalizeDouble(OrderTakeProfit(), dg);// нормализация цены ТейкПрофита ордера
if (ocp==otp) return(True);
}
return(False);
}
Скажите, пожалуйста, есть-ли индикатор, считающий общее количество открытых ордеров по всем задействованным, в процесс торговли, парам?