Сделайте это сами, потом расскажите:
int start=GetTickCount(); for(int i=0;i<1000000;i++) { Здесь код } Alert(GetTickCount()-start); ...Аналогично для второго варианта
Сделайте это сами, потом расскажите:
Сделал (как и предполагалось - достойный аргумент "попробовать самому"!!!) простенькую конструкцию:
double g_point; int StopLoss = 200; int TakeProfit = 200; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- int Tick1, Tick2; g_point = MarketInfo (Symbol(), MODE_POINT); Tick1 = GetTick.C(); Tick2 = GetTick(); Print ("Tick1 = ", Tick1, "; Tick2 = ", Tick2); if (Tick1 - Tick2 != 0) Alert ("Всё-таки есть разница ?!"); //---- return (0); } //+------------------------------------------------------------------+ int GetTick.C() { int start = GetTickCount(); for (int i = 0; i < 1000000; i++) { double l_sl = StopLoss * MarketInfo (Symbol(), MODE_POINT); double l_tp = TakeProfit * MarketInfo (Symbol(), MODE_POINT); } return (GetTickCount()-start); } //+------------------------------------------------------------------+ int GetTick() { int start = GetTickCount(); for (int i = 0; i < 1000000; i++) { double l_sl = StopLoss * g_point; double l_tp = TakeProfit * g_point; } return (GetTickCount()-start); }а вот результат принта:
2011.05.13 13:06:41 TestCount EURUSD,H1: Alert: Всё-таки есть разница ?! 2011.05.13 13:06:41 TestCount EURUSD,H1: Tick1 = 2687; Tick2 = 63Спасибо!!!
Можно вопрос? Часто ли в жизни приходится повторять какую-либо операцию по 1 миллиону раз за один тик? )
бывают такие случаи.
только есть еще один, на первый взгляд очень эффективный способ, который лежит на поверхности.
Можно вопрос? Часто ли в жизни приходится повторять какую-либо операцию по 1 миллиону раз за один тик? )
бывают такие случаи.
только есть еще один, на первый взгляд очень эффективный способ, который лежит на поверхности.
double g_point; int StopLoss = 200; int TakeProfit = 200; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- int cnt, a_Tick[3], rez = 100000000; string txt, a_res[] = {"Tick1","Tick2","Tick3"}; g_point = MarketInfo (Symbol(), MODE_POINT); a_Tick[0] = GetTick.C(); a_Tick[1] = GetTick.C2(); a_Tick[2] = GetTick(); for (int j = 0; j < 3; j++) { if (rez > a_Tick[j]) { rez = a_Tick[j]; cnt = j; } txt = StringConcatenate (txt, a_res[j], " = ", a_Tick[j], "; "); } Print (txt); Alert ("Наменьший результат ", a_res[cnt], " ?!"); //---- return (0); } //+------------------------------------------------------------------+ int GetTick.C() { int start = GetTickCount(); for (int i = 0; i < 1000000; i++) { double l_sl = StopLoss * MarketInfo (Symbol(), MODE_POINT); double l_tp = TakeProfit * MarketInfo (Symbol(), MODE_POINT); } return (GetTickCount()-start); } //+------------------------------------------------------------------+ int GetTick.C2() { int start = GetTickCount(); for (int i = 0; i < 1000000; i++) { double l_sl = StopLoss * Point; double l_tp = TakeProfit * Point; } return (GetTickCount()-start); } //+------------------------------------------------------------------+ int GetTick() { int start = GetTickCount(); for (int i = 0; i < 1000000; i++) { double l_sl = StopLoss * g_point; double l_tp = TakeProfit * g_point; } return (GetTickCount()-start); }и проверил в тестере:
13:45:19 2011.01.03 00:00 TestCount USDCHF,M15: Tick1 = 813; Tick2 = 31; Tick3 = 31; 13:45:19 2011.01.03 00:00 TestCount USDCHF,M15: Alert: Наменьший результат Tick2 ?! 13:45:20 2011.01.03 00:15 TestCount USDCHF,M15: Tick1 = 890; Tick2 = 47; Tick3 = 31; 13:45:20 2011.01.03 00:15 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:22 2011.01.03 00:30 TestCount USDCHF,M15: Tick1 = 813; Tick2 = 31; Tick3 = 15; 13:45:22 2011.01.03 00:30 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:23 2011.01.03 00:45 TestCount USDCHF,M15: Tick1 = 828; Tick2 = 47; Tick3 = 31; 13:45:23 2011.01.03 00:45 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:25 2011.01.03 01:00 TestCount USDCHF,M15: Tick1 = 843; Tick2 = 32; Tick3 = 31; 13:45:25 2011.01.03 01:00 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:26 2011.01.03 01:15 TestCount USDCHF,M15: Tick1 = 844; Tick2 = 31; Tick3 = 31; 13:45:26 2011.01.03 01:15 TestCount USDCHF,M15: Alert: Наменьший результат Tick2 ?! 13:45:28 2011.01.03 01:30 TestCount USDCHF,M15: Tick1 = 844; Tick2 = 31; Tick3 = 16; 13:45:28 2011.01.03 01:30 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:29 2011.01.03 01:45 TestCount USDCHF,M15: Tick1 = 797; Tick2 = 15; Tick3 = 31; 13:45:29 2011.01.03 01:45 TestCount USDCHF,M15: Alert: Наменьший результат Tick2 ?! 13:45:31 2011.01.03 02:00 TestCount USDCHF,M15: Tick1 = 921; Tick2 = 32; Tick3 = 31; 13:45:31 2011.01.03 02:00 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:32 2011.01.03 02:15 TestCount USDCHF,M15: Tick1 = 766; Tick2 = 47; Tick3 = 15; 13:45:32 2011.01.03 02:15 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:33 2011.01.03 02:30 TestCount USDCHF,M15: Tick1 = 937; Tick2 = 32; Tick3 = 31; 13:45:33 2011.01.03 02:30 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?! 13:45:35 2011.01.03 02:45 TestCount USDCHF,M15: Tick1 = 922; Tick2 = 31; Tick3 = 31; 13:45:35 2011.01.03 02:45 TestCount USDCHF,M15: Alert: Наменьший результат Tick2 ?! 13:45:37 2011.01.03 03:00 TestCount USDCHF,M15: Tick1 = 968; Tick2 = 32; Tick3 = 31; 13:45:37 2011.01.03 03:00 TestCount USDCHF,M15: Alert: Наменьший результат Tick3 ?!Я в данном вопросе сориентировался!
Если код вызывается в тестере, на оптимизации, то это явно влияет на ее продолжительность.
Кстати, IgRU4ek, результат - это в тестере или скрипт? Не сравнивали там и там?
Если даже период тестирования 10 лет, то миллион транзакций (изм. т/п или с/л) за этот период - это круто) Такой грааль ни один брокер не погладит по головке)
Да и есть обратная пропорция, если уж пошли считать миллисекунды. При увеличении кол-ва глобальных переменных, происходит пропорциональное увеличение выделяемой памяти, что также сказывается на производительности системы в целом.
PS: При всем при этом, стиль использования переменных конечно более изящен, не спорю.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
1-я конструкция
2-я конструкция
Просьба высказываться, если есть что сказать, приводя обоснованные аргументы.