Tarea técnica
Нужны:
1. Функция счетчика сигналов Sign_Checker(int ID), то есть, например, есть какая-то функция которая выдает сигналы типа int, например
в start:
int IDstoch80 = 5555;
int IDstoch20 = 5556;
int IDstoch50 = 5557;
if (iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1)>80){Sign_Checker(IDstoch80);} // при выполнении условия идёт трансляция IDstoch80 в Sign_Checker(int ID)
if (Sign_Checker(IDstoch80)>2){Comment("читал ТЗ=", Sign_Checker(IDstoch80));} // проверяем сколько раз посчитано значение IDstoch80
if (iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1)==80){Sign_Checker(IDstoch20);} // при выполнении условия идёт трансляция IDstoch20 в Sign_Checker(int ID)
if (Sign_Checker(IDstoch20)>2){Comment("читал ТЗ=", Sign_Checker(IDstoch20));} // проверяем сколько раз посчитано значение IDstoch20
if (iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1)==50){Sign_Checker(IDstoch50);} // при выполнении условия идёт трансляция IDstoch50 в Sign_Checker(int ID)
if (Sign_Checker(IDstoch50)>2){Comment("читал ТЗ=", Sign_Checker(IDstoch50));} // проверяем сколько раз посчитано значение IDstoch50
пример: в данном случае Comment("читал ТЗ=", Sign_Checker(IDstoch80)); должна показать значение = 3, так как стохастик превысил 80 три раза, а Comment("читал ТЗ=", Sign_Checker(IDstoch20)); должна показать значение = 6, так как стохастик пересекал значение 80 шесть раз
требования к функции -
- все расчёты только внутри функции, функция отдельна от других блоков,
- все условия и сравнения и вывод - вне функции (например условия по стохастику - в start),
- возможность обнуления счётчика определённого ID, например так if (Sign_Checker(IDstoch50)>2) Sign_Checker(IDstoch20)=0;
2. Функция LuckCounter() или LuckCounter(double target) Счетчика достижения текущей ценой (бид или аск) заданной чем-либо цены target - никаких ордеров, счётчик получает уровни/таргеты/цели/цены в формате double, результат выдаёт в формате int
пример в start: if (iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1)>80){LuckCounter(1.4702);} // при выполнении условия идёт трансляция цели в LuckCounter, далее LuckCounter запоминает цель и сравнивает с текущей ценой, если текущая цена достигает цель, то LuckCounter по этой цели будет +1, и цель обнуляется, общее значение LuckCounter выдаст +1. Если в LuckCounter было отправлено 100 разных целей и цена достигла только 44 из них, то общее значение LuckCounter должен выдавать 44, а остальные цели (каждая из них) ждут достижения ценой либо своего обнуления
- все расчёты только внутри функции, функция отдельна от других блоков,
- все условия и сравнения и вывод - вне функции (например условия по стохастику - в start),
- возможность обнуления определённой цели до достижения её бидом аском, например так if (Sign_Checker(IDstoch50)==9) LuckCounter(1.4702)=0;
функция LuckCounter подобна предыдущей, только вместо счёта поступающих чисел как в Sign_Checker, функция LuckCounter следит за ценой и считает сравнения/достижения поставленных целей с ценой, обе простые
код комментируйте цитатами из ТЗ на русском языке,
примеры привёл, чтобы могли проверить что всё работает правильно, примером может быть и не стохастик
код в примерах может содержать ошибки - не придирайтесь, задавайте вопросы