Ваши вопросы по языку MQL4


vlad_123

Местный знаток
Хай пипел.
Подскажите по марже.

Есть счет Alpari-ECN-Demo с вменяемым размером депо Margin_stdLots.
Решил потестать функцию советника, которая открывает позицию >maxLotSize путем открытия двух позиций нужного суммарного объема. Для этого открыл счет с 10 демо-лямами.

Сейчас советник открыл на обоих счетах одинаковый набор позиций, причем на stdLots риск (размер ордера относительно свободной маржи) в 2 раза больше, но на bigLots счете размер маржи афигенски выше - не могу понять почему.
 

Вложения

_SERG_

Активный участник
Хай пипел.
Подскажите по марже.

Есть счет Alpari-ECN-Demo с вменяемым размером депо Margin_stdLots.
Решил потестать функцию советника, которая открывает позицию >maxLotSize путем открытия двух позиций нужного суммарного объема. Для этого открыл счет с 10 демо-лямами.

Сейчас советник открыл на обоих счетах одинаковый набор позиций, причем на stdLots риск (размер ордера относительно свободной маржи) в 2 раза больше, но на bigLots счете размер маржи афигенски выше - не могу понять почему.
MODE_MARGINCALCMODE28Способ расчета залоговых средств. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD на индексы
MODE_MARGININIT29Начальные залоговые требования для 1 лота
MODE_MARGINMAINTENANCE30Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот
MODE_MARGINHEDGED31Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот
MODE_MARGINREQUIRED32Размер свободных средств, необходимых для открытия 1 лота на покупку

А все, эти параметры, на твоих счетах тоже идентичны?
Естесссно, в пересчете для каждой открытой позиции.
 

vlad_123

Местный знаток
MODE_MARGINCALCMODE28Способ расчета залоговых средств. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD на индексы
MODE_MARGININIT29Начальные залоговые требования для 1 лота
MODE_MARGINMAINTENANCE30Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот
MODE_MARGINHEDGED31Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот
MODE_MARGINREQUIRED32Размер свободных средств, необходимых для открытия 1 лота на покупку

А все, эти параметры, на твоих счетах тоже идентичны?
Естесссно, в пересчете для каждой открытой позиции.
сооружу завтра скрипт и прогоню.
но странно будет, если для двух аккаунтов на одном сервере они разные...
 

_SERG_

Активный участник
сооружу завтра скрипт и прогоню.
но странно будет, если для двух аккаунтов на одном сервере они разные...
Ты в курсе, что предположение, причина ошибки?
Сравнишь, увидишь. (Завтра. ))) )
Если не сойдется, то причина другая, и зона поиска сузиться.
 

vlad_123

Местный знаток
Ну, как-то так:
bigLots:
2019.09.11 08:23:36.314 vladTest EURUSD,H1: USDCAD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=200.0
2019.09.11 08:23:36.314 vladTest EURUSD,H1: EURGBP: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=221.02
2019.09.11 08:23:36.314 vladTest EURUSD,H1: USDCHF: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=200.0
2019.09.11 08:23:36.314 vladTest EURUSD,H1: NZDUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=128.6
2019.09.11 08:23:36.314 vladTest EURUSD,H1: AUDUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=137.49
2019.09.11 08:23:36.314 vladTest EURUSD,H1: GBPUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=247.19
2019.09.11 08:23:36.313 vladTest EURUSD,H1: USDJPY: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=200.0
2019.09.11 08:23:36.313 vladTest EURUSD,H1: EURUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=221.03

stdLots
2019.09.11 08:23:53.691 vladTest EURUSD,H1: USDCAD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=200.0
2019.09.11 08:23:53.691 vladTest EURUSD,H1: EURGBP: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=221.02
2019.09.11 08:23:53.691 vladTest EURUSD,H1: USDCHF: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=200.0
2019.09.11 08:23:53.691 vladTest EURUSD,H1: NZDUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=128.6
2019.09.11 08:23:53.691 vladTest EURUSD,H1: AUDUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=137.49
2019.09.11 08:23:53.691 vladTest EURUSD,H1: GBPUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=247.19
2019.09.11 08:23:53.691 vladTest EURUSD,H1: USDJPY: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=200.0
2019.09.11 08:23:53.691 vladTest EURUSD,H1: EURUSD: MODE_MARGINCALCMODE=0.0, MODE_MARGININIT=0.0, MODE_MARGINMAINTENANCE=0.0, MODE_MARGINHEDGED=50000.0, MODE_MARGINREQUIRED=221.03
Еще идеи? ;)
 

_SERG_

Активный участник
Ну, как-то так:


Еще идеи? ;)
А, "средства" + "маржа" + "свободная маржа" = "балансу" ?

1. Чет я не совсем понял это, твое выражение: "размер ордера относительно свободной маржи ", это касается суммарного объема, или для каждой позиции?
2. Ну, и на счетах плече и там и там одинаковое. Ордера открыты пункт в пункт?
 

vlad_123

Местный знаток
А, "средства" + "маржа" + "свободная маржа" = "балансу" ?

1. Чет я не совсем понял это, твое выражение: "размер ордера относительно свободной маржи ", это касается суммарного объема, или для каждой позиции?
2. Ну, и на счетах плече и там и там одинаковое. Ордера открыты пункт в пункт?
Маржа + Свободная маржа + прибыль = баланс

1. ордера выставляются парами, по одному на symbol - видно по времени открытия на скриншотах. размер каждого из этих двух ордеров высчитывается как (маржа/1000) * 0.01 для bigLots и (маржа/500) * 0.01 для stdLots - т.е. 1000/500 USD на 0.01 лот.
2. ACCOUNT_LEVERAGE=500 и там и там, а размер маржи ну никак не зависит от +-5 пунктов цены.
 

_SERG_

Активный участник
Маржа + Свободная маржа + прибыль = баланс

1. ордера выставляются парами, по одному на symbol - видно по времени открытия на скриншотах. размер каждого из этих двух ордеров высчитывается как (маржа/1000) * 0.01 для bigLots и (маржа/500) * 0.01 для stdLots - т.е. 1000/500 USD на 0.01 лот.
2. ACCOUNT_LEVERAGE=500 и там и там, а размер маржи ну никак не зависит от +-5 пунктов цены.
Посчитай соотношение депозитов на счетах, с учетом твоих "1000/500", цифры (залог на единицу объема) должны быть одинаковыми.
%% погрешности должен быть минимальный, спред, дифференциал котировок др. неточности, в т.ч. и округления.
 
Последнее редактирование:

vlad_123

Местный знаток
bigLots: всего открыто 1328.5 lots, маржа 4823000, 4823000/1328.5=3630
stdLots: 1.88 lots, 376 маржа, 376/1.88=200

жирным - получается маржа per lot.
 

_SERG_

Активный участник
bigLots: всего открыто 1328.5 lots, маржа 4823000, 4823000/1328.5=3630
stdLots: 1.88 lots, 376 маржа, 376/1.88=200

жирным - получается маржа per lot.
MARGINREQUIRED по инструментам разные.
Точно, что количество позиций на счетах идентично по параметрам, за исключением объема каждой отдельной позиции ?
Может отличается на одну, две?
Просчитай залог отдельно по каждому инструменту, для каждого счета и типа позиций.
Извини приходится ванговать, но я бы начал с "поштучного" анализа, тогда несоответствия вылезут точно.
Понятно, что не руками.
 

vlad_123

Местный знаток
MARGINREQUIRED по инструментам разные.
Точно, что количество позиций на счетах идентично по параметрам, за исключением объема каждой отдельной позиции ?
Может отличается на одну, две?
Понятно, что маржа разная по разным инструментам - ордера открыты по 3м парам.
Количество ордеров одинаковое - сов один и тот же, и контролирует наличие позиций именно по обоим торгуемым парам (сов торгует на корреляции 2х инструментов, по ордеру на инструмент).
Т.е. - да - отличаются только объемом, плюс прайс +- пару пунктов.
Но это как может давать разницу в марже в 18 !!! раз?

Просчитай залог отдельно по каждому инструменту, для каждого счета и типа позиций.
Извини приходится ванговать, но я бы начал с "поштучного" анализа, тогда несоответствия вылезут точно.
Понятно, что не руками.
Ну вот, чесс-гря, не лежала душа писать анализатор, по сложности сравнимый с советником ;)
Спросил у Альпари в https://forexsystemsru.com/threads/obsuzhdenie-kompanii-alpari-alpari.60426/post-1448150 - если не растолкуют, то буду заморачиваться по-черному :(
 

vlad_123

Местный знаток
Есть подозрение, что все мои непонятки - из-за плавающего залога -https://alpari.com/ru/trading/trading_terms/#margin_requirements
Поиграюсь с AccountFreeMarginCheck чтобы (попытаться) выяснить зависимость маржи от размера позиции.
 
Последнее редактирование модератором:

Alpari_RU

Активный участник
Есть подозрение, что все мои непонятки - из-за плавающего залога https://alpari.com/ru/trading/trading_terms/#margin_requirements
Здравствуйте! Да, верно. У Вас открыты разные объемы позиций. На втором счете (bigLots), больше объем лотов, расчет маржи происходит согласно маржинальным требованиям.
Подробнее о расчете залога при плавающем кредитном плече: -https://alpari.com/ru/faq/trading_terms/calculating_margin_notional_value/
 
Последнее редактирование модератором:

vlad_123

Местный знаток
Здравствуйте! Да, верно. У Вас открыты разные объемы позиций. На втором счете (bigLots), больше объем лотов, расчет маржи происходит согласно маржинальным требованиям.
Подробнее о расчете залога при плавающем кредитном плече:
Посмотрел AccountFreeMarginCheck - в ней, похоже, не учитываются такие мелочи как плавающий залог, и дебажный вывод для AccountFreeMargin-AccountFreeMarginCheck показывает:
2019.09.12 20:09:46.212 vladTest EURUSD,H1: EURUSD: 0 100.00 lots, margin = 22156.40
2019.09.12 20:09:46.212 vladTest EURUSD,H1: EURUSD: 0 10.00 lots, margin = 2215.64
2019.09.12 20:09:46.212 vladTest EURUSD,H1: EURUSD: 0 1.00 lots, margin = 221.56
Правильно ли я понимаю, что расчет маржи с учетом зависимости % залога от размера совокупной позиции - нужно реализовывать самостоятельно, вбивая в код все цифры с -https://alpari.com/ru/trading/trading_terms/#margin_requirements и постоянно отслеживая их соответствие реальным требованиям?
 
Последнее редактирование модератором:

Alpari_RU

Активный участник
Правильно ли я понимаю, что расчет маржи с учетом зависимости % залога от размера совокупной позиции - нужно реализовывать самостоятельно, вбивая в код все цифры с -https://alpari.com/ru/trading/trading_terms/#margin_requirements и постоянно отслеживая их соответствие реальным требованиям?
Да, верно. Стандартными функциями метатрейдера ее проверить нельзя. Вам необходимо будет реализовать ее самостоятельно.
 
Последнее редактирование модератором:

panand

Местный житель
добрый день!
прикладываю код расчёта общей максимальной просадки.
if(AccountEquity()>MaxEq){MaxEq=AccountEquity();CurDrod=0;}
if(AccountEquity()<MaxEq)CurDrod=100*(MaxEq-AccountEquity())/MaxEq;
if(CurDrod>MaxDrod)MaxDrod=CurDrod;
пожалуйста допишите строки к коду для расчёта максимальной просадки ордеров по лонг или шорт позициям раздельно,при наличии ShortMagic() || LongMagic(),
с тем ,чтобы закрывать цикл по макс. просадке по лонг или шорт ордерам.
if(StopMaxDrowdown>0)if(MaxDrod>StopMaxDrowdown){while(check()>0)close_();return(0);}
 

vlad_123

Местный знаток
Сейчас советник открыл на обоих счетах одинаковый набор позиций, причем на stdLots риск (размер ордера относительно свободной маржи) в 2 раза больше, но на bigLots счете размер маржи афигенски выше - не могу понять почему.
:cool: вопрос оказался настолько интересным, что попал в рассылку "Форум биржевых трейдеров. Рассылка № 3580"
 

Leonup

Новичок форума
Здравствуйте! В Учебнике MQL4 есть эксперт tradingexpert.mq4 (задача 29), в нем заинтересовал блок закрытия ордеров. Захотелось увидеть, как будет выглядеть код этого советника в действующем компиляторе MQL4. И поэтому в этом действующем компиляторе весь код попытался разложить по полочкам: tradingexpert_2.mq4.
Но столкнулся с одной проблемой и, именно, с закрытием ордеров. Закрывает ордера правильно, как по тейк-профиту, так и по обратному пересечению скользящих средних. Но после обратного пересечения пытается закрыть еще раз уже закрытый (последний) ордер, и в журнале появляется ошибка OrderClose error 4108.
Эксперт tradingexpert.mq4 (без переделки) работает нормально.
Очень хотелось бы знать, где я допускаю ошибку.
Прикрепляю оба советника: tradingexpert и tradingexpert_2.
 

Вложения

gravity

Почетный гражданин
Здравствуйте! В Учебнике MQL4 есть эксперт tradingexpert.mq4 (задача 29), в нем заинтересовал блок закрытия ордеров. Захотелось увидеть, как будет выглядеть код этого советника в действующем компиляторе MQL4. И поэтому в этом действующем компиляторе весь код попытался разложить по полочкам: tradingexpert_2.mq4.
Но столкнулся с одной проблемой и, именно, с закрытием ордеров. Закрывает ордера правильно, как по тейк-профиту, так и по обратному пересечению скользящих средних. Но после обратного пересечения пытается закрыть еще раз уже закрытый (последний) ордер, и в журнале появляется ошибка OrderClose error 4108.
Эксперт tradingexpert.mq4 (без переделки) работает нормально.
Очень хотелось бы знать, где я допускаю ошибку.
Прикрепляю оба советника: tradingexpert и tradingexpert_2.
Сам недоучка, но вот тут точно не надо было закомментировывать return. На работу не проверял.
 

Вложения

Последнее редактирование:

mobidik

VIP-участник
Здравствуйте! В Учебнике MQL4 есть эксперт tradingexpert.mq4 (задача 29), в нем заинтересовал блок закрытия ордеров. Захотелось увидеть, как будет выглядеть код этого советника в действующем компиляторе MQL4. И поэтому в этом действующем компиляторе весь код попытался разложить по полочкам: tradingexpert_2.mq4.
Но столкнулся с одной проблемой и, именно, с закрытием ордеров. Закрывает ордера правильно, как по тейк-профиту, так и по обратному пересечению скользящих средних. Но после обратного пересечения пытается закрыть еще раз уже закрытый (последний) ордер, и в журнале появляется ошибка OrderClose error 4108.
Эксперт tradingexpert.mq4 (без переделки) работает нормально.
Очень хотелось бы знать, где я допускаю ошибку.
Прикрепляю оба советника: tradingexpert и tradingexpert_2.
Как минимум, после 85 строки вставьте переменную: Tip=-1; каждый раз, перед новым входом в цикл, данные нужно обнулять, т.к. при Tip=0 будет соответствовать позиции на бай, то "обнуление" в данном случае равно -1.
 

Онлайн статистика

Пользователи онлайн
16
Гости онлайн
63
Всего посетителей
79

Статистика

Гостевая
Help Users
  • No one is chatting at the moment.
  • st2050:
    NSerega, не ответили на прямой вопрос - дискуссию хотите про то что туалет типа сортир якобы гигиеничней проточной канализации? Не дать ответ на прямой вопрос и перевести тему (с планирования дискуссии на заботу о собственных домах) - это классифицированная манипуляция вида "Отвлечение". Пожалуйста сохраните формальную вежливость, - ответьте на заданный вопрос.
  • ikaika:
    Надо быть кем то что бы задавать вопросы , иначе рискуешь быть посланным на Х.. при всей формальной вежливости 😂
    +1
  • amata_eshi:
    St2050 ты нудный, завел разговор про сартир)))😅😅😅
    +1
  • Юлия:
    Трейдеры, поддержите диалог
  • amata_eshi:
    Юлия сказал(а):
    Трейдеры, поддержите диалог
    стоп лосс придумали трусы!!! :ROFLMAO:
  • Юлия:
    amata_eshi сказал(а):
    стоп лосс придумали трусы!!! :ROFLMAO:
    Чтоб не остаться без трусов.
    +1
  • amata_eshi:
    Юлия сказал(а):
    Чтоб не остаться без трусов.
    надо быть всегда быть готовым ко всему, особенно без трусов 😊
    +1
  • Юлия:
    Верю вашему опыту.
    +1
  • Дмитрий007:
    Юлия старается изо всех сил, делает форуму дыхание рот в рот, прямую стимуляцию сердца...
    +1
  • Альпасавод:
    По чем труселя? Где продают? Кто последний в очереди?😁
  • Альпасавод:
    Петька с Чапаевым едут на машине по трассе, видят девушка голосуют. Остановились."довезите", а те "Чем будешь расплачиваться?".
  • Альпасавод:
    Отвечает "Натурой", "Это как?", "Ну когда снимаешь трусы, ..." Чапаев Петьке "Петька тебе трусы нужны, нет, тогда поехали!"
  • Альпасавод:
    По ходу ни кому не понравился. Ладно следующий анекдот.
  • Альпасавод:
    Приходит парень к стоматологу, мне говорит нужно зуб удалить. Стоматолог посмотрел, да тебе аж 10 зубов удалять! Парень испугался, говорит нет я пойду. Стоматолог ну ладно, ты знаешь че сделай, зуб к поезду привяжи как тронется он так и вылетит! На следующий день встречаются, стоматолог спрашивает как дела, парень ну как ты и сказал, зуб к поезду привязал. Ну и че? Ну че поезд 20 км/ч и я 20, поезд 40 км/ч и я 40! Ну и че? Че, че я же 60 км/ч не дам! Два вагона отделилось! Нут машинист выскачил дал в зуб и зуба нет!
    +1
  • Альпасавод:
    И тишина! Ни кто общаться не хочет. Ладно пойду работу работать.
  • archuko:
    Privet Vsem
    +2
  • archuko:
    est tut kto ?
    +1
  • IRIP:
    est
  • IRIP:
    tokma redko
    +1
  • st2050:
    ikaika, неправда. Величина социального статуса не определяет возможность задавать вопросы, разве что получить ответы. А риск быть посланным я за риск не считаю, для меня это эффективный метод определить возможность взаимоотношений.
  • st2050:
    ikaika, в жизни многие люди не очень нравятся друг другу. Но в силу производственных или социальных отношений всё равно контактируют. Так вот, риск быть посланным - отличный метод чтобы провести обоснованную границу и прекратить контакты вне зависимости от обстоятельств, побуждающих эти контакты поддерживать. Очень удобный повод.
    +1
    Верх