Пишу первый код.Торгует прибыльно,но мало. Добрался до магических номеров.В тестере Alert( ) после OrdersTotal( ) возвращает только нули.Так и должно быть или я что-то закрутил?Ведь без этих показателей,грош цена всей системе!
- Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6.
- Вопросы от начинающих MQL5 MT5 MetaTrader 5
- Функция ChartScreenShot в тестере
значит что либо условие не правильное, либо нет открытых ордеров.
вот переборо по ордерам:
/---- int order_type, order_magic; int b_orders, s_orders, bs_orders, ss_orders; string order_symbol; for (int i=1; i<=OrdersTotal(); i++) //Цикл по всем ордерам,.. { //отражённым в терминале if(OrderSelect(i-1,SELECT_BY_POS)==true) //Если есть следующий { // Здесь должен выполняться анализ характеристик ордеров //-------------------- order_type=OrderType(); order_magic=OrderMagicNumber(); order_symbol=OrderSymbol(); if(order_type==OP_BUYSTOP && order_magic==magic && order_symbol==Symbol()) // выбран ордер buy stop {bs_orders++;} if(order_type==OP_SELLSTOP && order_magic==magic && order_symbol==Symbol()) // выбран ордер sell stop {ss_orders++;} if(order_type==OP_BUY && order_magic==magic && order_symbol==Symbol()) // выбран ордер buy {b_orders++;} if(order_type==OP_SELL && order_magic==magic && order_symbol==Symbol()) // выбран ордер sell {s_orders++;} //-------------------- } }
значит что либо условие не правильное, либо нет открытых ордеров.
вот переборо по ордерам:
но сделки он совершае
значит что либо условие не правильное, либо нет открытых ордеров.
вот переборо по ордерам:
у меня 4-ре условия и каждому я хочю присвоить свой mn . это будет работать?
if(order_magic==magic_if_1) { order_if_1++; } . . . . и т.д.
допустим у вас есть mn1, mn2, mn3, mn4 - каждый мажик своему условию. тогда для того чтобы получить количтсво ордеров (открытых и отложенных в том числе), нужно
получишь количество ордеров открытых по условиям
int order_magic; int total_orders; for (int i=1; i<=OrdersTotal(); i++) //Цикл по всем ордерам,.. { //отражённым в терминале if(OrderSelect(i-1,SELECT_BY_POS)==true) //Если есть следующий { // Здесь должен выполняться анализ характеристик ордеров //-------------------- order_magic=OrderMagicNumber(); if(order_magic==mn1) {total_orders++;} if(order_magic==mn2) {total_orders++;} if(order_magic==mn3) {total_orders++;} if(order_magic==mn4) {total_orders++;} //-------------------- } }
допустим у вас есть mn1, mn2, mn3, mn4 - каждый мажик своему условию. тогда для того чтобы получить количтсво ордеров (открытых и отложенных в том числе), нужно
int d;
for(d=0;d<=sos;d++)
{
OrderSelect(d,SELECT_BY_POS);
ident_mn=OrderMagicNumber();
Alert("mnmn=",ident_mn);
if(ident_mn==mag_num_usl1_s)
ord_usl1_s=true;
else
ord_usl1_s=false;
Alert("iden_usl1=",ord_usl1_s);
if(ident_mn==mag_num_usl2_s)
ord_usl2_s=true;
else
ord_usl2_s=false;
Alert("iden_usl2=",ord_usl2_s);
if(ident_mn==mag_num_usl1_b)
ord_usl1_b=true;
else
ord_usl1_b=false;
Alert("iden_usl1=",ord_usl1_b);
if(ident_mn==mag_num_usl2_b)
ord_usl2_b=true;
else
ord_usl2_b=false;
Alert("iden_usl1=",ord_usl2_b); а тут есть ошибка?
}
вставляйте код через кнопку SRC...
а где ваше
if(OrderSelect(i-1,SELECT_BY_POS)==true) //Если есть следующий { // Здесь должен выполняться анализ характеристик ордеров //-------------------- вот тут нужно переберать. .... а у вас просто сразу закрываеться.... после OrderSelect(d,SELECT_BY_POS); и даже не производиться перебор ордеров //-------------------- }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования