Да, синтетику можно там делать, только это не то. На синтетику нельзя повесить советник - точнее, повесить можно, но торговать он этим инструментом не сможет. Синтетический график воспринимается терминалом как новый инструмент, а так как его фактически в рынке не существует, то и торговля роботом по нему невозможна. (вот руками почему-то, как ни странно, сделки открывались нормально). В скотобазе искал. Там жалкие поделки пока что, к сожалению. Ну и один мой индикатор - можете поискать - Blue renko bars - называется. Но он строит ренки в подвальном окне под ценовым графиком, ни больше ни меньше. Находил в маркете вроде более-менее полноценные решения. Но отваливать денег за индикатор без исходного кода...ну чет такое себе.
MQL-Код:
//+------------------------------------------------------------------+//| Объем всех открытых позиций |//+------------------------------------------------------------------+double OpenPositionTotalVolume(){ double volume = 0.0; //Если хеджинговый счет if(AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUN T_MARGIN_MODE_RETAIL_HEDGING) { for(int i=PositionsTotal()-1;i>=0;i--) { if(PositionSelectByTicket(PositionGetTicket(i))) { volume += PositionGetDouble(POSITION_VOLUME); } } } //Если неттинговый счет if(AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUN T_MARGIN_MODE_RETAIL_NETTING || AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_M ARGIN_MODE_EXCHANGE) { for(int i=PositionsTotal()-1;i>=0;i--) { if(PositionSelect(PositionGetSymbol(i))) { volume += PositionGetDouble(POSITION_VOLUME); } } } return(NormalizeDouble(volume,2));}
MQL-Код:
//+------------------------------------------------------------------+//| Объем всех ордеров выхода из рынка, DEAL_ENTRY_OUT |//+------------------------------------------------------------------+double HistoryDealsTotalVolume(){HistorySelect(0,TimeCurrent());uint total = HistoryDealsTotal();ulong ticket = 0;double volume = 0.0; for(uint i=0; i<total; i++) { if((ticket = HistoryDealGetTicket(i)) > 0) { if(HistoryDealGetInteger(ticket,DEAL_ENTRY)==DEAL_ ENTRY_OUT) { volume += HistoryDealGetDouble(ticket,DEAL_VOLUME); } } } return (NormalizeDouble(volume,2));}