Дайте пожалуйста кодом для МТ4 генерацию случайного числа от 1 до 55. Только пожалуйста не отправляйте меня в справку, рандомайзер знаю, но немного забыл. Спасибо за приветствие)
Что такое остаток от деления знаете? 641256916267 % 55 = 22 Чтобы исключить 0 надо прибавить 1 и всё.
Что такое остаток от деления знаете? 641256916267 % 55 = 22 Чтобы исключить 0 надо прибавить 1 и всё.
Дайте код для МТ4 пожалуйста, я теории не прошу, просто очень устал, но нужно.
int randBetween(int a,int b) {
int d=b-a;
int limit=SHORT_MAX - SHORT_MAX%d;
int r=0;
while((r=MathRand())>limit)
;
return a+(r%d);
}
по памяти примерно так..добавить проверку аргументов и протестить насчёт > или >=
int r = MathRand() % 55 + 1;
или в виде функции
int randBetween(int a, int b) { return MathRand() % (b - a + 1) + a; }
Я и дал код. Только заменил получение случайного числа на конкретное число.
int a = rand()%55+1;
переменная "а" будет равна от 1 до 55 включительно.
Только перед этим, в OnInit() желательно поставить генератор случайных чисел в начальное состояние.
srand(GetTickCount());
Пока нет возможности протестировать, как будет возможность - то сразу! Спасибо большое за наработки, но если ещё есть варианты то пожалуйста выкладывайте.
не помню кто автор кода
void OnStart() { int list[]= {1,5,7}; Print(RndList(list)); } template<typename T> T RndList(T &list[]) {return list[MathRand()%ArraySize(list)];} //возвращает один из трех значений list
int random=MathRand()%4; //от 0-3 (+1 от 1-4) //------------------------------------------------------ ENUM_ORDER_TYPE GetRandomType() { int random=(MathRand()%4)+1; //+1 чтобы 0 не было //--- switch(t) { case(0): return(ORDER_TYPE_BUY_LIMIT); case(1): return(ORDER_TYPE_SELL_LIMIT); case(2): return(ORDER_TYPE_BUY_STOP); case(3): return(ORDER_TYPE_SELL_STOP); } //--- недопустимое значение return(WRONG_VALUE); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования