Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
серьезно, для новичков на рынке это то - что надо !, аккуратно, информативно, теперь дело за серьезными наворотами.
предложения по доработке принимаются вне очереди =)
насколько актуальна торговля по нескольким Сиволам и/или ТаймФреймам в рамках одного эксперта?
сейчас сижу и думаю - выкладывать ли мне symbol_lib и шаблон эксперта, предназначенные именно для этого =)
и думаю, что такой необходимости нет... если торговля будет по разным счетам - всё равно придёться запускать несколько терминалов, а если по одному - то просто несколько окон открыть. И путаницы меньше, вроде бы...
Интересно будет выслушать мнения и аргументы к ним ;)
Тема интересная, особенно если есть возможность торговать КРУГЛОСУТОЧНО, (выделенка или ADSL и "сервер").
Я не програмист, но реализовал торговлю по нескольким парам, саму тему, индикатор взял для чистоты эксперимента, понятно, чтоусловия торговли каждый выберет сам. Единственная загвоздка, эксперт должен проверять есть ли ордера и есть ли они по проверяемой паре, извини за каламбур, с этим я запарился. понял, что рукопашные ордера эксперт за свои не признает, нужно вставлять "магическое число" это так?
//----------------Есть ли ордера по паре vl-----------------------
int total=OrdersTotal();
int n=0;
Print ("Всего ордеров==",total);
if (total>0)
{for (cnt=0;cnt>total;cnt++)
{OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
{if(OrderSymbol()==vl)
{n++; return(0);
}
}
}
}
//Print("NNN==",n," ",vl);
Print("ШАГ==",cnt," ","Symbol", vl," ","Orders==",n);
//---------------------------------------------
Это кусок кода, который не работает, подскажи, с высот разума серьезно програмиста, в чем "косяк"
да, надо при установке ордера присваивать ему MagicNumber, а потом после ордерселект проверять - if ( OrderMagicNumber() == _MagicNumber ) { тогда что-то делать с ордером.
Надо, наверное, самому "дров наломать" чтоб понять, как работает ;)
Попытаюсь облегчить тебе жизнь - ф-ция _MagicNumber (ВНИМАТЕЛЬНО: если нужной пары нет в списке, мейджик будет генерироваться неоригинальный)
///////////////////////////////////////////////////////////////////////////////// /**/ int _MagicNumber( int Expert_Id, string _Symbol, int _Period ) ///////////////////////////////////////////////////////////////////////////////// // Ф-ция генерирует MagicNumber, уникальный для связки Expert_Id - _Symbol - _Period. // Expert_Id должен быть максимум четырёхзначный (т.е. <= 9999) // Полученый MagicNumber будет 6-ти или 7-мизначный (в зависимости от Символа) и будет выглядеть так: // SSPEEEE, где SS - это код символа (от 1 до 71), P - это код периода (от 1 до 8) и EEEE - Expert_Id (от 1 до 9999) // // Таким образом, даже с одинаковым Expert_Id эксперты, работающие на разных Символах/ТФ будут использовать разные MagicNumber. // Например, при Expert_Id = 1230, _Symbol = GBPUSD и _Period = PERIOD_H1, MagicNumber будет 1141230 // А этот же эксперт, но на графике с периодом PERIOD_W1 будет иметь MagicNumber = 1181230 // Соответственно, если символ графика будет EURAUD, MagicNumber будет 141230 // // т.е. Expert_Id есть смысл менять только если два эксперта работают на одном символе и одном ТФ ///////////////////////////////////////////////////////////////////////////////// { int Period_Id = 9; switch ( _Period ) { case PERIOD_MN1: Period_Id = 8; break; case PERIOD_W1: Period_Id = 7; break; case PERIOD_D1: Period_Id = 6; break; case PERIOD_H4: Period_Id = 5; break; case PERIOD_H1: Period_Id = 4; break; case PERIOD_M15: Period_Id = 3; break; case PERIOD_M5: Period_Id = 2; break; case PERIOD_M1: Period_Id = 1; break; default: Print( "trade_lib&info_lib - _MagicNumber( ", Expert_Id, ", ", _Symbol, ", ", _Period, " ) - Invalid Period! Function shall reurn 0!" ); return(0); } Period_Id *= 10000; int Symbol_Id = 99; // forex if ( _Symbol == "AUDUSD" ) { Symbol_Id = 1; } if ( _Symbol == "CHFJPY" ) { Symbol_Id = 2; } if ( _Symbol == "EURAUD" ) { Symbol_Id = 3; } if ( _Symbol == "EURCAD" ) { Symbol_Id = 4; } if ( _Symbol == "EURCHF" ) { Symbol_Id = 5; } if ( _Symbol == "EURGBP" ) { Symbol_Id = 8; } if ( _Symbol == "EURJPY" ) { Symbol_Id = 7; } if ( _Symbol == "EURUSD" ) { Symbol_Id = 6; } if ( _Symbol == "GBPCHF" ) { Symbol_Id = 9; } if ( _Symbol == "GBPJPY" ) { Symbol_Id = 10; } if ( _Symbol == "GBPUSD" ) { Symbol_Id = 11; } if ( _Symbol == "USDCAD" ) { Symbol_Id = 12; } if ( _Symbol == "USDCHF" ) { Symbol_Id = 13; } if ( _Symbol == "USDJPY" ) { Symbol_Id = 14; } // stock if ( _Symbol == "GOLD" ) { Symbol_Id = 15; } //cfd if ( _Symbol == "#AA" ) { Symbol_Id = 16; } if ( _Symbol == "#AIG" ) { Symbol_Id = 17; } if ( _Symbol == "#AXP" ) { Symbol_Id = 18; } if ( _Symbol == "#BA" ) { Symbol_Id = 19; } if ( _Symbol == "#C" ) { Symbol_Id = 20; } if ( _Symbol == "#CAT" ) { Symbol_Id = 21; } if ( _Symbol == "#DD" ) { Symbol_Id = 22; } if ( _Symbol == "#DIA" ) { Symbol_Id = 23; } if ( _Symbol == "#DIS" ) { Symbol_Id = 24; } if ( _Symbol == "#EK" ) { Symbol_Id = 25; } if ( _Symbol == "#GE" ) { Symbol_Id = 26; } if ( _Symbol == "#GM" ) { Symbol_Id = 27; } if ( _Symbol == "#HD" ) { Symbol_Id = 28; } if ( _Symbol == "#HON" ) { Symbol_Id = 29; } if ( _Symbol == "#HPQ" ) { Symbol_Id = 30; } if ( _Symbol == "#IBM" ) { Symbol_Id = 31; } if ( _Symbol == "#INTC" ) { Symbol_Id = 32; } if ( _Symbol == "#IP" ) { Symbol_Id = 33; } if ( _Symbol == "#JNJ" ) { Symbol_Id = 34; } if ( _Symbol == "#JPM" ) { Symbol_Id = 35; } if ( _Symbol == "#KO" ) { Symbol_Id = 36; } if ( _Symbol == "#MCD" ) { Symbol_Id = 37; } if ( _Symbol == "#MMM" ) { Symbol_Id = 38; } if ( _Symbol == "#MO" ) { Symbol_Id = 39; } if ( _Symbol == "#MRK" ) { Symbol_Id = 40; } if ( _Symbol == "#MSFT" ) { Symbol_Id = 41; } if ( _Symbol == "#PFE" ) { Symbol_Id = 42; } if ( _Symbol == "#PG" ) { Symbol_Id = 43; } if ( _Symbol == "#QQQ" ) { Symbol_Id = 44; } if ( _Symbol == "#SBC" ) { Symbol_Id = 45; } if ( _Symbol == "#SPY" ) { Symbol_Id = 46; } if ( _Symbol == "#T" ) { Symbol_Id = 47; } if ( _Symbol == "#UTX" ) { Symbol_Id = 48; } if ( _Symbol == "#VZ" ) { Symbol_Id = 49; } if ( _Symbol == "#WMT" ) { Symbol_Id = 50; } if ( _Symbol == "#XOM" ) { Symbol_Id = 51; } //futures if ( _Symbol == "#CH5" ) { Symbol_Id = 52; } if ( _Symbol == "#CK5" ) { Symbol_Id = 53; } if ( _Symbol == "#CLG5" ) { Symbol_Id = 54; } if ( _Symbol == "#CLH5" ) { Symbol_Id = 55; } if ( _Symbol == "#CLJ5" ) { Symbol_Id = 56; } if ( _Symbol == "#ENQH5" ) { Symbol_Id = 57; } if ( _Symbol == "#EPH5" ) { Symbol_Id = 58; } if ( _Symbol == "#GOLDG5") { Symbol_Id = 59; } if ( _Symbol == "#GOLDJ5") { Symbol_Id = 60; } if ( _Symbol == "#NGH5" ) { Symbol_Id = 61; } if ( _Symbol == "#NGJ5" ) { Symbol_Id = 62; } if ( _Symbol == "#SH5" ) { Symbol_Id = 63; } if ( _Symbol == "#SK5" ) { Symbol_Id = 64; } if ( _Symbol == "#SLVH" ) { Symbol_Id = 65; } if ( _Symbol == "#WH5" ) { Symbol_Id = 66; } if ( _Symbol == "#WK5" ) { Symbol_Id = 67; } //index if ( _Symbol == "_DJI" ) { Symbol_Id = 68; } if ( _Symbol == "_NQ100" ) { Symbol_Id = 69; } if ( _Symbol == "_NQCOMP") { Symbol_Id = 70; } if ( _Symbol == "_SP500" ) { Symbol_Id = 71; } if ( Symbol_Id == 99 ) { Print( "trade_lib&info_lib - _MagicNumber( ", Expert_Id, ", ", _Symbol, ", ", _Period, " ) - Invalid Symbol! Function shall reurn 0!" ); return(0); } Symbol_Id *= 100000; return(Expert_Id + Period_Id + Symbol_Id); }[qoute]
Понял, спасибо за MN, огромное отдельное спасибо за библиотеку, буду пробовать