Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Запустить именно как скрипт? У меня демо-счет. Я на нем тестирую. Или вставить этот код в робота?
именно как скрипт, хотя можно и в код робота и посмотреть что в тестере выдает
Набросал тестовый советник. расчет идет точный. Вот записи из лога
2016.12.18 20:12:35.447 Risk=1
2016.12.18 20:12:35.447 StopLoss=100
2016.12.18 20:12:35.447 TakeProfit=100
2016.12.18 20:12:36.840 EURUSD : real ticks begin from 2016.01.04 00:00:00
2016.12.18 20:12:36.842 2016.12.01 00:00:18 balans = 100000.0 :sl = 100.0: tv = 1.0
2016.12.18 20:12:36.842 2016.12.01 00:00:18 (sl*tv) =100.0
2016.12.18 20:12:36.842 2016.12.01 00:00:18 procent =1000.0
2016.12.18 20:12:36.842 2016.12.01 00:00:18 lot=procent/(sl*tv) =10.0
2016.12.18 20:12:36.842 2016.12.01 00:00:18 failed instant buy 10.00 EURUSD at 0.00000 [Invalid price]
2016.12.18 20:12:36.842 2016.12.01 00:00:18 CTrade::OrderSend: instant buy 10.00 EURUSD at 0.00000 [invalid price]
2016.12.18 20:12:36.855 2016.12.01 00:00:19 balans = 100000.0 :sl = 100.0: tv = 1.0
2016.12.18 20:12:36.855 2016.12.01 00:00:19 (sl*tv) =100.0
2016.12.18 20:12:36.855 2016.12.01 00:00:19 lot=procent/(sl*tv) =10.0
2016.12.18 20:12:36.855 2016.12.01 00:00:19 instant buy 10.00 EURUSD at 1.05930 (1.05891 / 1.05930 / 1.05891)
2016.12.18 20:12:36.855 2016.12.01 00:00:19 deal #2 buy 10.00 EURUSD at 1.05930 done (based on order #2)
2016.12.18 20:12:36.855 2016.12.01 00:00:19 deal performed [#2 buy 10.00 EURUSD at 1.05930]
2016.12.18 20:12:36.855 2016.12.01 00:00:19 order performed buy 10.00 at 1.05930 [#2 buy 10.00 EURUSD at 1.05930]
2016.12.18 20:12:36.863 2016.12.01 00:00:19 CTrade::OrderSend: instant buy 10.00 EURUSD at 1.05930 [done at 1.05930]
2016.12.18 20:12:36.863 2016.12.01 00:00:19 position modified [#2 buy 10.00 EURUSD 1.05930 sl: 1.05830]
2016.12.18 20:12:36.863 2016.12.01 00:00:19 CTrade::OrderSend: modify position #2 EURUSD (sl: 1.05830, tp: 0.00000) [done]
2016.12.18 20:12:36.863 2016.12.01 00:00:19 position modified [#2 buy 10.00 EURUSD 1.05930 sl: 1.05830 tp: 1.06030]
2016.12.18 20:20:56.165 2016.12.01 03:11:11 take profit triggered #2 buy 10.00 EURUSD 1.05930 sl: 1.05830 tp: 1.06030 [#3 sell 10.00 EURUSD at 1.06030]
2016.12.18 20:20:56.165 2016.12.01 03:11:11 deal #3 sell 10.00 EURUSD at 1.06030 done (based on order #3)
2016.12.18 20:20:56.165 2016.12.01 03:11:11 deal performed [#3 sell 10.00 EURUSD at 1.06030]
2016.12.18 20:20:56.165 2016.12.01 03:11:11 order performed sell 10.00 at 1.06030 [#3 sell 10.00 EURUSD at 1.06030]
2016.12.18 20:20:56.165 2016.12.01 03:11:11 balans = 101000.0 :sl = 100.0: tv = 1.0
2016.12.18 20:20:56.165 2016.12.01 03:11:11 (sl*tv) =100.0
2016.12.18 20:20:56.165 2016.12.01 03:11:11 procent =1010.0
2016.12.18 20:20:56.165 2016.12.01 03:11:11 lot=procent/(sl*tv) =10.1
2016.12.18 20:20:56.165 2016.12.01 03:11:11 instant buy 10.10 EURUSD at 1.06041 (1.06030 / 1.06041 / 1.06030)
2016.12.18 20:20:56.165 2016.12.01 03:11:11 deal performed [#4 buy 10.10 EURUSD at 1.06041]
2016.12.18 20:20:56.165 2016.12.01 03:11:11 order performed buy 10.10 at 1.06041 [#4 buy 10.10 EURUSD at 1.06041]
2016.12.18 20:20:56.166 2016.12.01 03:11:11 CTrade::OrderSend: instant buy 10.10 EURUSD at 1.06041 [done at 1.06041]
2016.12.18 20:20:56.166 2016.12.01 03:11:11 position modified [#4 buy 10.10 EURUSD 1.06041 sl: 1.05941]
2016.12.18 20:20:56.166 2016.12.01 03:11:11 CTrade::OrderSend: modify position #4 EURUSD (sl: 1.05941, tp: 0.00000) [done]
2016.12.18 20:20:56.166 2016.12.01 03:11:11 position modified [#4 buy 10.10 EURUSD 1.06041 sl: 1.05941 tp: 1.06141]
2016.12.18 20:20:56.166 2016.12.01 03:11:11 CTrade::OrderSend: modify position #4 EURUSD (sl: 1.05941, tp: 1.06141) [done]
2016.12.18 20:21:11.202 2016.12.01 03:24:11 stop loss triggered #4 buy 10.10 EURUSD 1.06041 sl: 1.05941 tp: 1.06141 [#5 sell 10.10 EURUSD at 1.05941]
2016.12.18 20:21:11.202 2016.12.01 03:24:11 deal #5 sell 10.10 EURUSD at 1.05941 done (based on order #5)
2016.12.18 20:21:11.202 2016.12.01 03:24:11 deal performed [#5 sell 10.10 EURUSD at 1.05941]
2016.12.18 20:21:11.202 2016.12.01 03:24:11 order performed sell 10.10 at 1.05941 [#5 sell 10.10 EURUSD at 1.05941]
2016.12.18 20:21:11.202 2016.12.01 03:24:11 balans = 99990.0 :sl = 100.0: tv = 1.0
2016.12.18 20:21:11.202 2016.12.01 03:24:11 (sl*tv) =100.0
2016.12.18 20:21:11.202 2016.12.01 03:24:11 procent =999.9
2016.12.18 20:21:11.202 2016.12.01 03:24:11 lot=procent/(sl*tv) =9.999000000000001
2016.12.18 20:21:11.202 2016.12.01 03:24:11 instant buy 10.00 EURUSD at 1.05952 (1.05941 / 1.05952 / 1.05941)
2016.12.18 20:21:11.202 2016.12.01 03:24:11 deal performed [#6 buy 10.00 EURUSD at 1.05952]
2016.12.18 20:21:11.202 2016.12.01 03:24:11 order performed buy 10.00 at 1.05952 [#6 buy 10.00 EURUSD at 1.05952]
2016.12.18 20:21:11.203 2016.12.01 03:24:11 CTrade::OrderSend: instant buy 10.00 EURUSD at 1.05952 [done at 1.05952]
2016.12.18 20:21:11.203 2016.12.01 03:24:11 position modified [#6 buy 10.00 EURUSD 1.05952 sl: 1.05852]
2016.12.18 20:21:11.203 2016.12.01 03:24:11 CTrade::OrderSend: modify position #6 EURUSD (sl: 1.05852, tp: 0.00000) [done]
2016.12.18 20:21:11.203 2016.12.01 03:24:11 position modified [#6 buy 10.00 EURUSD 1.05952 sl: 1.05852 tp: 1.06052]
2016.12.18 20:21:11.203 2016.12.01 03:24:11 CTrade::OrderSend: modify position #6 EURUSD (sl: 1.05852, tp: 1.06052) [done]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 take profit triggered #6 buy 10.00 EURUSD 1.05952 sl: 1.05852 tp: 1.06052 [#7 sell 10.00 EURUSD at 1.06052]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 deal #7 sell 10.00 EURUSD at 1.06055 done (based on order #7)
2016.12.18 20:23:17.071 2016.12.01 07:02:54 deal performed [#7 sell 10.00 EURUSD at 1.06055]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 order performed sell 10.00 at 1.06055 [#7 sell 10.00 EURUSD at 1.06052]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 balans = 101020.0 :sl = 100.0: tv = 1.0
2016.12.18 20:23:17.071 2016.12.01 07:02:54 (sl*tv) =100.0
2016.12.18 20:23:17.071 2016.12.01 07:02:54 procent =1010.2
2016.12.18 20:23:17.071 2016.12.01 07:02:54 lot=procent/(sl*tv) =10.102
2016.12.18 20:23:17.071 2016.12.01 07:02:54 instant buy 10.10 EURUSD at 1.06068 (1.06055 / 1.06068 / 1.06055)
2016.12.18 20:23:17.071 2016.12.01 07:02:54 deal performed [#8 buy 10.10 EURUSD at 1.06068]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 order performed buy 10.10 at 1.06068 [#8 buy 10.10 EURUSD at 1.06068]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 CTrade::OrderSend: instant buy 10.10 EURUSD at 1.06068 [done at 1.06068]
2016.12.18 20:23:17.071 2016.12.01 07:02:54 position modified [#8 buy 10.10 EURUSD 1.06068 sl: 1.05968]
2016.12.18 20:23:17.072 2016.12.01 07:02:54 CTrade::OrderSend: modify position #8 EURUSD (sl: 1.05968, tp: 0.00000) [done]
2016.12.18 20:23:17.072 2016.12.01 07:02:54 position modified [#8 buy 10.10 EURUSD 1.06068 sl: 1.05968 tp: 1.06168]
2016.12.18 20:23:17.072 2016.12.01 07:02:54 CTrade::OrderSend: modify position #8 EURUSD (sl: 1.05968, tp: 1.06168) [done]
2016.12.18 20:23:22.836 stopped by user
2016.12.18 20:23:22.836 2016.12.01 07:14:13 position closed due end of test at 1.06050 [#8 buy 10.10 EURUSD 1.06068 sl: 1.05968 tp: 1.06168]
2016.12.18 20:23:22.836 2016.12.01 07:14:13 deal #9 sell 10.10 EURUSD at 1.06050 done (based on order #9)
2016.12.18 20:23:22.836 2016.12.01 07:14:13 deal performed [#9 sell 10.10 EURUSD at 1.06050]
2016.12.18 20:23:22.836 2016.12.01 07:14:13 order performed sell 10.10 at 1.06050 [#9 sell 10.10 EURUSD at 1.06050]
2016.12.18 20:23:22.836 final balance 100838.20 USD
2016.12.18 20:23:22.836 EURUSD,M5: 51484 ticks, 87 bars generated. Environment synchronized in 0:00:00.234. Test passed in 0:10:49.042 (including ticks preprocessing 0:00:01.373).
2016.12.18 20:23:22.836 EURUSD,M5: total time from login to stop testing 0:10:49.276 (including 0:00:00.234 for history data synchronization)
2016.12.18 20:23:22.836 51485 total ticks for all symbols
2016.12.18 20:23:22.837 1 Mb memory used including 8 Mb of history data, 128 Mb of tick data
2016.12.18 20:23:22.837 log file "C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000\logs\20161218.log" written
Результат из отчета
Время Сделка Символ Тип Направление Объем Цена Ордер Комиссия Своп Прибыль Баланс Комментарий
2016.12.01 00:00:00 1 balance 0.00 0.00 100 000.00 100 000.00
2016.12.01 00:00:19 2 EURUSD buy in 10.00 1.05930 2 0.00 0.00 0.00 100 000.00
2016.12.01 03:11:11 3 EURUSD sell out 10.00 1.06030 3 0.00 0.00 1 000.00 101 000.00 tp 1.06030
2016.12.01 03:11:11 4 EURUSD buy in 10.10 1.06041 4 0.00 0.00 0.00 101 000.00
2016.12.01 03:24:11 5 EURUSD sell out 10.10 1.05941 5 0.00 0.00 -1 010.00 99 990.00 sl 1.05941
2016.12.01 03:24:11 6 EURUSD buy in 10.00 1.05952 6 0.00 0.00 0.00 99 990.00
2016.12.01 07:02:54 7 EURUSD sell out 10.00 1.06055 7 0.00 0.00 1 030.00 101 020.00 tp 1.06052
2016.12.01 07:02:54 8 EURUSD buy in 10.10 1.06068 8 0.00 0.00 0.00 101 020.00
2016.12.01 07:14:13 9 EURUSD sell out 10.10 1.06050 9 0.00 0.00 -181.80 100 838.20 end of test
0.00 0.00 838.20 100 838.20
...
именно как скрипт, хотя можно и в код робота и посмотреть что в тестере выдает
Запущен как скрипт:
Запущен как скрипт:
Посмотрите в спецификации инструмента какой способ рассчета
Посмотрите в спецификации инструмента какой способ рассчета
Может дело в том, что я использую напрямую PositionsTotal() и OrdersTotal()?
Способ расчета: Forex. Ваш тестовый робот корректно расчитывает лот. Но, когда я пытаюсь использовать функцию в своем коде - некорректно.
значит все таки вы у себя что-то делаете не так.
значит все таки вы у себя что-то делаете не так.