//------------------------------------------------------------------ GetSwap double GetSwap(int dir, string smb) { double lotsize=MarketInfo(smb, MODE_LOTSIZE); double ticksize=MarketInfo(smb, MODE_TICKSIZE); double tickval=MarketInfo(smb, MODE_TICKVALUE); int swapType=MarketInfo(smb, MODE_SWAPTYPE); string smbL=StringSubstr(smb, 0, 3); string smbR=StringSubstr(smb, 3, 3); double swap=Swap(dir, smb)*tickval; if (swapType==0) if (smbL=="USD" && smbR!="JPY") swap=swap*MarketInfo(smb, MODE_BID); if (swapType==1) { if (smbL!="USD") swap=swap*MarketInfo(smb, MODE_BID); swap=swap/(ticksize*lotsize); } if (swapType==3) { swap=swap*MarketInfo(smb, MODE_BID); swap=swap/(ticksize*lotsize); } // Print(smb+" swap="+DTS(swap, 3)+" | Type="+swapType+" VALUE="+DTS(tickval, 2)+" TICK="+DTS(ticksize, 5)+" LOT="+DTS(lotsize, 2)+" *** "+DTS(ticksize*lotsize, 2)); return(swap); } //--------------------------------------------------------------- Swap double Swap(int dir, string smb) { if (dir==OP_BUY) return(MarketInfo(smb, MODE_SWAPLONG)); if (dir==OP_SELL) return(MarketInfo(smb, MODE_SWAPSHORT)); }
но нужно проверить в тестере. запустите какой то эксп чтоб ордер открывал и не закрывал. и сранивайте то что выдает OrderSwap и функция GetSwap.
все тестировал пару лет назад. может что и поменялось
sergeev:
но нужно проверить в тестере. запустите какой то эксп чтоб ордер открывал и не закрывал. и сранивайте то что выдает OrderSwap и функция GetSwap.
все тестировал пару лет назад. может что и поменялось
спасибо!

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
добрый день!
есть ли готовый код для корректного учета свопов разных типов?
поиском нашлись только отдельные фрагменты