Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Этот баг когда будет побежден.
Невозможно нормально тестер использовать!
Почему этот простейший код компилируется так долго на i7?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MetaEditor build 1490
fxsaber, 2016.12.04 12:43
{
Print(ToString(Trans) + ToString(Request) + ToString(Result));
}
#define TOSTRING(A) #A + " = " + (string)(A) + "\n"
#define TOSTRING2(A) #A + " = " + EnumToString(A) + "\n"
string ToString( const MqlTradeTransaction &Trans )
{
return(TOSTRING(Trans.deal) + TOSTRING(Trans.order) + TOSTRING(Trans.symbol) +
TOSTRING2(Trans.type) + TOSTRING2(Trans.order_type) + TOSTRING2(Trans.order_state) +
TOSTRING2(Trans.deal_type) + TOSTRING2(Trans.time_type) +
TOSTRING(Trans.time_expiration) + TOSTRING(Trans.price) + TOSTRING(Trans.price_trigger) +
TOSTRING(Trans.price_sl) + TOSTRING(Trans.price_tp) + TOSTRING(Trans.volume) +
TOSTRING(Trans.position) + TOSTRING(Trans.position_by));
}
string ToString( const MqlTradeRequest &Request )
{
return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) + TOSTRING(Request.tp) +
TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
TOSTRING(Request.position) + TOSTRING(Request.position_by));
}
string ToString( const MqlTradeResult &Result )
{
return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
TOSTRING(Result.retcode_external));
}
Здравствуйте,
У меня такая проблема в тестере:
На счету 100000 рублей. Хочу зайти в лонг лимитированной заявной на 5 контрактов, но получаю ошибку о том, что недостаточно денег на счёте.
Вот сделал код для примера, чтобы посмотреть как тестер расчитывает маржу для входа:
Вот, что вижу в журнале:
Не понимаю в чём проблема. Почему OrderCalcMargin(ORDER_TYPE_BUY_LIMIT.. выдаёт 0 и говорит, что нет ошибок. Хотя я пытался открыть шорт позицию лимитированной заявной и возникала такая же проблема, что недостаточно денег.
Я специально проверил и зашёл в лонг и в шорт на реальном счету, там всё работает. Ошибка с маржой именно в тестере.
В чём может быть проблема?
Здравствуйте,
У меня такая проблема в тестере:
На счету 100000 рублей. Хочу зайти в лонг лимитированной заявной на 5 контрактов, но получаю ошибку о том, что недостаточно денег на счёте.
Вот сделал код для примера, чтобы посмотреть как тестер расчитывает маржу для входа:
Вот, что вижу в журнале:
Не понимаю в чём проблема. Почему OrderCalcMargin(ORDER_TYPE_BUY_LIMIT.. выдаёт 0 и говорит, что нет ошибок. Хотя я пытался открыть шорт позицию лимитированной заявной и возникала такая же проблема, что недостаточно денег.
Я специально проверил и зашёл в лонг и в шорт на реальном счету, там всё работает. Ошибка с маржой именно в тестере.
В чём может быть проблема?
попробуйте OrderCalcMargin(ORDER_TYPE_BUY);
попробуйте OrderCalcMargin(ORDER_TYPE_BUY);
Пробовал. Пишет Margin to Open BUY=110068. По идее должно 100000 должно хватить чтобы открыть сделку на 5 контрактов. На реальном счёте нормально открывает. А в тестере получаю ошибку.
Пробовал. Пишет Margin to Open BUY=110068. По идее должно 100000 должно хватить чтобы открыть сделку на 5 контрактов. На реальном счёте нормально открывает. А в тестере получаю ошибку.
я про то, что даже если Вы открываете байлимит, маржу считайте от БАЙ
и Вам тестер говорит, что для открытия 5 лотов надо 110068 поэтому 100000 явно мало на 10068
Пробовал. Пишет Margin to Open BUY=110068. По идее должно 100000 должно хватить чтобы открыть сделку на 5 контрактов. На реальном счёте нормально открывает. А в тестере получаю ошибку.
OrderCalcMargin
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных ордеров и открытых позиций. Позволяет оценить размер маржи для планируемой торговой операции. Значение возвращается в валюте счета.
Если бы у Вас на счете были доллары и плечо 1:1, вернуло бы 100тыс., а так возвращает залог в рублях.
я про то, что даже если Вы открываете байлимит, маржу считайте от БАЙ
и Вам тестер говорит, что для открытия 5 лотов надо 110068 поэтому 100000 явно мало на 10068
Это я понял. Просто странно почему тестер не умеет считать правильно маржу для лимитированных заявок, которая значительно меньше.