Множественное открытие ордеров одновременно MQL5 - страница 4 1234 Новый комментарий Alexey Valeev 2018.03.26 22:08 #31 Evgeniy Zhdan: Это вот сюда ее надо засунуть? Просто в той функции что я предложил можно на всех символах позиции посчитать, используйте как я дал ExCheckPositions(_Symbol, Magic);Если изменить на эту строчку, то по сути останется то же самое, только будет считать на одном своём символе. if( _Symbol != PositionGetSymbol(p)) continu Evgeniy Zhdan 2018.03.26 22:09 #32 Alexey Valeev: Просто в той функции что я предложил можно на всех символах позиции посчитать, используйте как я дал Согласен, спасибо) Konstantin Nikitin 2018.03.26 23:05 #33 Evgeniy Zhdan: Это вот сюда ее надо засунуть? Ну если быть более точным, то строкой if( _Symbol != PositionGetSymbol(cnt) ) continue; Я пользуюсь при работе совы на одном символе. Если нужно проверять мультивалютно в цикле, то использую class CAllSymbols { private: string symbols[]; uint allSymbols; public: CAllSymbols(); bool testSymbol(const string str); }; CAllSymbols::CAllSymbols() { allSymbols = ArraySize(WorkPosition); if( ArrayResize(symbols, allSymbols) == allSymbols ) for(uint i=0; i<allSymbols; i++) symbols[i] = WorkPosition[i].getSymbol(); } bool CAllSymbols::testSymbol(const string str) { for(uint cnt=0; cnt<allSymbols; cnt++) if( str == symbols[cnt] ) return( true ); return( false ); } //+------------------------------------------------------------------+ CAllSymbols *AllSymbols; int OnInit() { AllSymbols = new CAllSymbols; } void OnTick() { for(int cnt=0; cnt<PositionsTotal(); cnt++) { if( !AllSymbols.testSymbol( PositionGetSymbol(cnt) ) ) continue; if( PositionGetInteger(POSITION_TYPE)!=ORDER_TYPE_BUY && PositionGetInteger(POSITION_TYPE)!=ORDER_TYPE_SELL ) continue; if( PositionGetInteger(POSITION_MAGIC) != Magic ) continue; /*...................*/ } Конечно все подрезано. Кому надо тот разберется ;)P.S. У меня class CWorkPosition чтоб работать по позициям каждого символа. Откуда и собираю массив всех символов, с которыми работает сова. Как сделать перебор открытых OrderComment() для ордеров из Хелп! Советник начал закрывать 1234 Новый комментарий
Это вот сюда ее надо засунуть?
ExCheckPositions(_Symbol, Magic);Если изменить на эту строчку, то по сути останется то же самое, только будет считать на одном своём символе.
if( _Symbol != PositionGetSymbol(p)) continuПросто в той функции что я предложил можно на всех символах позиции посчитать, используйте как я дал
Согласен, спасибо)
Это вот сюда ее надо засунуть?
Ну если быть более точным, то строкой
Я пользуюсь при работе совы на одном символе. Если нужно проверять мультивалютно в цикле, то использую
Конечно все подрезано. Кому надо тот разберется ;)
P.S. У меня class CWorkPosition чтоб работать по позициям каждого символа. Откуда и собираю массив всех символов, с которыми работает сова.