Страница 1 из 1

Как избежать двойной комиссии?

Добавлено: 20 авг 2019, 13:47
Quetzalcoatlus
Здравствуйте!
Владею навыками программирования, с биржевой торговлей не знаком. Но вот открыл брокерский счёт несколько дней назад. Для начала попробовал создать в AlfaDirect4 свою стратегию и робот - несложный алгоритм с обменом валютой (купил-продал, при нужных критериях). В общем примитивное чередование EnterLong()-EnterShort()-EnterLong()-EnterShort() При просмотре результатов тестирования я обнаружил, что имеет место двойное взимание комиссии 0,04% - при открытии позиции и при автоматическом закрытии позиции перед открытием позиции в другую сторону.
Возникает вопрос: как мне в коде инициировать простую одноразовую маркет-заявку на покупку/продажу валюты?
я попробовал в процедуре инициализации вставить
UseEnterMKT = true;
И писать в ветке на обмен, например моментально продать доллары с комиссией 0,04%,
EnterLong();
ClosePosition();
Но это вообще не работает. Робот в таких случаях при тестировании не делает ничего. Я пока не понимаю этих нюансов. Пожалуйста подскажите верно работающую инструкцию на моментальную покупку или продажу доллара по указанной цене, с комиссией 0,04%.
Спасибо!

Re: Как избежать двойной комиссии?

Добавлено: 20 авг 2019, 14:54
BugsDigger
Комиссия идет при любой сделке в процентах от суммы, и как бы вы ни проводили операции, взимание комиссии будет неизбежно.
И получается, что независимо от того, проводите ли вы, скажем, переворот позиции "за раз" или частями, комиссия будет суммарно та же.

> инструкцию на моментальную покупку или продажу доллара по указанной цене

Либо моментально (MKT, т.е. по рынку), либо по указанной цене (т.е. исполнение м.б. отложено до достижения указанной цены). Одновременно никак не выйдет, как вы понимаете: "моментально" в общем случае противоречит "указанной цене".

"Моментально" - да, следует указать UseEnterMKT=true; и использовать команды

EnterLong(N); // закроет шорт, если был, и купит N штук; без шорта добавит N штук
CloseLong(); // закрытие лонга
CloseLong(N); // сократит лонг на N штук

EnterShort(N); // закроет лонг, если был, и продаст N штук; без лонга продаст еще N
CloseShort(); // закрытие шорта
CloseShort(N); // сокращение шорта на N штук

Просто команд типа Buy(N)/Sell(N) по неизвестной науке причине в терминале не предусмотрено.

Ну и учитывайте, что робот работает только по окончании свечи, м.б. из-за этого вам кажется, что он "ничего не делает".
Есть, правда, режим, когда работает и внутри свечи, но я лично не пробовал.

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 11:10
High Profit Trader
Что это за режим такой "внутри свечи"?

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 11:19
BugsDigger
UseClosedBar=false, д.б. в документации.
Можно поискать этот текст в Google-поиске по форуму, чтобы найти примеры в коде; обычный поиск в коде, к сожалению, не ищет.

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 12:25
Quetzalcoatlus
Спасибо!
Но вот ещё такой вопрос:

Если я в скрипте кода стратегии открываю позицию, к примеру EnterLong();
И например торговая ситуация изменилась и
Мой робот прикажет сам себе остановиться, сделав Stop();
То в таком случае эта незакрытая висячая команда EnterLong(); была чисто виртуальной, или за нее реально спишется комиссия, как за подачу заявки?
(если это делается интерактивно, вручную, то судя по моему балансу, при подаче условных команд LMT, TRS и прочих реально списываются комиссия, как при подаче и при исполнении закрытии заявки)

Мои дополнительные вопросы можно сформулировать так:
1) При действиях вручную, взимается ли комиссия за отзыв неисполненной заявки, поданной и отозванной пользователем лично в интерфейсе AlfaDirect?
2) Взимается ли комиссия за отмену неисполненной заявки, поданной роботом?
3) Проясните, пожалуйста, вопрос вывода средств с брокерского на банковский счет.
Можете ли точно конкретно сказать, сколько с меня возьмут, если я попытаюсь вывести с брокерского на банковский счет (к примеру) 500 долларов?
Есть ли тут какие-нибудь подвохи?
Большое Спасибо за ответ!

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 12:39
BugsDigger
Комиссия идет, естественно, только за исполненные операции. Всё остальное - даром. :D
Насчет судьбы заявки, выставленной до Stop, не уверен, но по логике должна сниматься. Можете проверить самостоятельно: выставьте заявку с заведомо невыполнимым условием, затем Stop. Если в окне заявок отметится как аннулированная - нет проблем (вероятнее всего). Иначе, наверное, стоит перед Stop вызвать какую-то ф-цию снятия заявок, таковая д., очевидно, существовать.
Вывод средств, AFAIK, комиссиями не облагается (по аналогии с вашим обычным банковским счетом: с вас же не берут комиссии за то, что вы снимаете деньги со счета?).

Насчет снятия валюты с конверсией в рубли - не знаю, какой курс там применяется.

> подвохи?

Из них состоит вся жизнь... :mrgreen:

Ну, скажем, подоходный налог слупят, но какой же это подвох?

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 12:46
Quetzalcoatlus
ну а вывод 500 долларов на долларовый счет , и если дохода нет, только убытки, так какой НДФЛ)?
на практике - какой результат?

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 12:58
BugsDigger
Насчет налогообложения (обложение прибыльных операций, возврат переплаченных налогов по окончании финансового года по вашему заявлению в налоговую) - не могу точно всё заяснить, не спец. Лучше открыть новую тему на этот счет на форуме, думаю, общественности это будет небезынтересно.

Re: Как избежать двойной комиссии?

Добавлено: 21 авг 2019, 14:42
BugsDigger
Ну и насчет "подвохов".

Горе-трейдер Денис Громов: «Решил, что все – можно. И за полчаса наколбасил очень много денег»
https://realnoevremya.ru/articles/23275