Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Vitaly Muzichenko:
Кстати, вопрос: есть такая штука "MarketInfo(symb,MODE_MARGINCALCMODE)"
и "MarketInfo(symb,MODE_MARGINREQUIRED)" Чем это заменить в пятёрке?, может плохо искал, но ничего не нашёл.
Я понял. Городские власти всеми правдами-неправдами хотят продавать всем свой "люкоустойчивый" пятиколесный автомобитль, хотя четырехколесный всех устраивает, более того, именно на четырехколесном ездят все дилеры.
Простите, а я верно понимаю, что в тестере MT5 я не могу заглянуть в котировки дальше, чем на год назад?
Или я могу туда заглянуть?
У меня стратегия работает с трендовыми линиями высоких таймфремов, и для их строительства нужна история больше, чем год.
Интервал: Выбор периода.
Выбор периода.
Я другое спрашивал.
В MT4 при старте прогона запрашивается 1000 баров в каждом таймфрейме (честно говоря это ограничение тоже напрягает, но ведь мы сейчас не об этом).
В MT5 я могу запросить любую котировку за пределами начала "периода тестирования"?
Или есть ограничение?
И если есть, то каково оно?
Интересует вопрос того, что нужно в индикаторе рассчитать процент, и простой замены MarketInfo(Symbol(),MODE_MARGINREQUIRED) не нашёл. Чем это можно решить?
double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN),
One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED), // <<<
Step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
return( MathFloor(Free*Percent/100/One_Lot/Step)*Step );
}
Интересует вопрос того, что нужно в индикаторе рассчитать процент, и простой замены MarketInfo(Symbol(),MODE_MARGINREQUIRED) не нашёл. Чем это можно решить?
double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN),
One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED), // <<<
Step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
return( MathFloor(Free*Percent/100/One_Lot/Step)*Step );
}
Интересует вопрос того, что нужно в индикаторе рассчитать процент, и простой замены MarketInfo(Symbol(),MODE_MARGINREQUIRED) не нашёл. Чем это можно решить?
double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN),
One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED), // <<<
Step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
return( MathFloor(Free*Percent/100/One_Lot/Step)*Step );
}
g Попробуйте такой вариант
{
double One_Lot=0.0; // <<<
double price=0.0;
double volume=0.0;
double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN);
double Step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
if(action==ORDER_TYPE_BUY)price=SymbolInfoDouble(symbol,SYMBOL_ASK);
if(action==ORDER_TYPE_SELL)price=SymbolInfoDouble(symbol,SYMBOL_BID);
if(!OrderCalcMargin(action,symbol,1.0,price,One_Lot))return(MinLot);
if(One_Lot1!=0 && Step!=0)volume = MathFloor(Free*Percent/100.0/One_Lot/Step)*Step;
if(volume!=0)return(volume);
return(MinLot);
}
...
g Попробуйте такой вариант
{
double One_Lot=0.0; // <<<
double price=0.0;
double volume=0.0;
double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN);
double Step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
if(action==ORDER_TYPE_BUY)price=SymbolInfoDouble(symbol,SYMBOL_ASK);
if(action==ORDER_TYPE_SELL)price=SymbolInfoDouble(symbol,SYMBOL_BID);
if(!OrderCalcMargin(action,symbol,1.0,price,One_Lot))return(MinLot);
if(One_Lot1!=0 && Step!=0)volume = MathFloor(Free*Percent/100.0/One_Lot/Step)*Step;
if(volume!=0)return(volume);
return(MinLot);
}
Думаю, что так просто не получится. Поскольку считают индикатор, а там MARGINREQUIRED на каждом баре свой. Что в четверке, что в пятерке, самому считать надо.
...
g Попробуйте такой вариант
{
}
...
Такой вариант отработал чётко, но только в советнике, в индикаторе выдаёт 0.01, что и стоило ожидать. Мне нужно считать в индикаторе, есть решение?