Скачать MetaTrader 5

MQL4 Расчет свопов вручную

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Управляй агентами в профиле. Это просто!
gammaray
255
gammaray 2016.08.14 19:49 

Всем привет!

Написал функцию для расчета количества переходов через ночь для расчета свопа по ордеру. Сразу оговорюсь, ордера виртуальные (мультивалютный советник, поэтому никакими OrderSwap пользоваться не могу). Но по идее надо написать реализацию свою типа этой же функции.  Написал функцию, но не уверен в полной ее точности. И еще... В нее надо бы дописать учет обработки дня тройного свопа. Но тут всю голову уже изломал. Вышло что-то огромное на переборы всех вариантов, так что пока функцию даже без этого куска приведу.

int OverNight(datetime st, datetime end, int tripleSwapDay)
{
    int res=0;
    MqlDateTime s, e;
    TimeToStruct(st, s);
    TimeToStruct(end, e);
    if(s.year < e.year)         //Если поменялся год
    {
        res = s.year%4 == 0 ? 366-s.day_of_year : 365-s.day_of_year;
        int curYear = s.year+1;
        while(curYear != e.year)
        {
            res += curYear%4 == 0 ? 366 : 365;
            curYear++;
        }
        res += e.day_of_year;
    }
    else                        //Если год не поменялся
    {
        res = e.day_of_year - s.day_of_year;
    }
    return res;
}

 Вопросов собственно два:

1. Правильно ли я тут все учел? Может можно как-то проще?

2. Как все таки толково прописать учет тройного свопа в конце этой функции (используя уже полученную разницу в днях)

gammaray
255
gammaray 2016.08.15 18:05  
Что ни у кого нет опыта разработки аналогичной функции?
Alexey Oreshkin
3932
Alexey Oreshkin 2016.08.15 20:43  
gammaray:
Что ни у кого нет опыта разработки аналогичной функции?
Зачем оно?
gammaray
255
gammaray 2016.08.15 20:44  
Alexey Oreshkin:
Зачем оно?
Ответ на этот вопрос написал в шапке в скобках. Мультивалютный советник. Ордера виртуальные. Отслеживаются через файл
Alexey Kozitsyn
6421
Alexey Kozitsyn 2016.08.16 10:18  
gammaray:

Всем привет!

Написал функцию для расчета количества переходов через ночь для расчета свопа по ордеру. Сразу оговорюсь, ордера виртуальные (мультивалютный советник, поэтому никакими OrderSwap пользоваться не могу). Но по идее надо написать реализацию свою типа этой же функции.  Написал функцию, но не уверен в полной ее точности. И еще... В нее надо бы дописать учет обработки дня тройного свопа. Но тут всю голову уже изломал. Вышло что-то огромное на переборы всех вариантов, так что пока функцию даже без этого куска приведу.

 Вопросов собственно два:

1. Правильно ли я тут все учел? Может можно как-то проще?

2. Как все таки толково прописать учет тройного свопа в конце этой функции (используя уже полученную разницу в днях)

Привет.

Для определения дня тройного свопа есть идентификатор SYMBOL_SWAP_ROLLOVER3DAYS https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
gammaray
255
gammaray 2016.08.16 17:24  
Andrey Khatimlianskii:

1. Свопы меняются, поэтому для долгосрока такой способ не подойдет. Ну, или историю свопов нужно собирать.

2. Разницы в днях не достаточно, нужно кол-во переходов со среды на четверг и кол-во остальных переходов. 

1. Ну этим пренебречь придется всяко. Своп могу через настройки задать типа средний за период тестирования.

2. Так а про что изначально написал?) У меня учет тройного свопа вышел очень громоздкий. Думал может кто какую более простую реализацию подскажет. P.S. Не у всех брокеров тройной своп взимается со среды на четверг 

gammaray
255
gammaray 2016.08.16 17:25  
Alexey Kozitsyn:

Привет.

Для определения дня тройного свопа есть идентификатор SYMBOL_SWAP_ROLLOVER3DAYS https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Я своп считать хочу в ручную. День тройного свопа передается третьим параметром в функцию
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий