вопрос к программистам - страница 5

 
azik1111:

ну и какая это строка . как сделать тут так что бы он воспринял другое условие ? я не програмист . что бы он дал мне возможность поставить отрицательное значение

Для начала условие следует сформулировать
 

условие : закрытие всех открытых и удаление отложенных ордеров при достижении значения суммарной прибыли или убытка в определенном заданном диапозоне .

у меня срабатывает пара отложенных ордеров . естейственно что при этом значение прибыли будет отрицательное, но мне нужно что бы он проверял это условие после срабатывания третьего или четвертого отложенного ордера, или после закрытия одного уже сработавшего ордера, условие закрытия которого является срабатыавние третьего или четвертого отложенного . что бы это условие проверялось после этих которые я перечислил сейчас .

 
azik1111:

условие : закрытие всех открытых и удаление отложенных ордеров при достижении значения суммарной прибыли или убытка в определенном заданном диапозоне .

у меня срабатывает пара отложенных ордеров . естейственно что при этом значение прибыли будет отрицательное, но мне нужно что бы он проверял это условие после срабатывания третьего или четвертого отложенного ордера, или после закрытия одного уже сработавшего ордера, условие закрытия которого является срабатыавние третьего или четвертого отложенного . что бы это условие проверялось после этих которые я перечислил сейчас .

ну как самый простой вариант четко формируете список условий и в https://www.mql5.com/ru/job
 

вот отрывок кода увеличения объема последующего ордера по ряду фибоначи. можно из него сделать простую прогрессию геометрическую, когда следующий будет в 2 раза больше . если да то как ?

int Fibonacci(int n) {
  int a=0, b=0, i=1, s=0;

  if (n==1) s=1;
  if (n>1) {
    s=1;
    while (i<n) {
      i++;
      a=b;
      b=s;
      s=a+b;
    }
  }
  return(s);
}
 
azik1111:

вот отрывок кода увеличения объема последующего ордера по ряду фибоначи. можно из него сделать простую прогрессию геометрическую, когда следующий будет в 2 раза больше . если да то как ?


int gp(int n) {
  int i=1, s=0;

  if (n==1) s=1;
  if (n>1) {
    s=1;
    while (i<n) {
      i++;
      s=s*2;
    }
  }
  return(s);
}
 

спасибо, но немного не то что я хотел . у меня выставляется сначала отложенные 0.1, потом если выполнились они то выставляется 0.2 ? потом я хотел что бы было 0.2 * 2 = 0.4 . я сделал как вы указали, но проверял на тестере, получается что выставляется 0.1 а потом сразу 0.4

если вам не трудно подскажите .

с уважением, Азер .

 
azik1111:

спасибо, но немного не то что я хотел . у меня выставляется сначала отложенные 0.1, потом если выполнились они то выставляется 0.2 ? потом я хотел что бы было 0.2 * 2 = 4 . я сделал как вы указали, но проверял на тестере, получается что выставляется 0.1 а потом сразу 0.4

если вам не трудно подскажите .

с уважением, Азер .

вопрос не понятен
 

раньше у меня было увеличение по фибоначи . т.е. сначало 0.1, потом 0.2, потом 0.3, потом 0.5 итд .

теперь я хотел что бы увеличение было просто по прогрессии геометрической . т.е. сначало 0.1 потом 0.2, потом 0.4, потом 0.8 итд

когда я сделал как вы сказали, то у меня получилось 0.1 потом сразу 0.4, а потом увеличение пошло правильно 0.8 итд . просто пропустилось 0.2 .

я не знаю как подругому написать . помоему тут упускается одна фаза прибавления .

 
azik1111:

раньше у меня было увеличение по фибоначи . т.е. сначало 0.1, потом 0.2, потом 0.3, потом 0.5 итд .

теперь я хотел что бы увеличение было просто по прогрессии геометрической . т.е. сначало 0.1 потом 0.2, потом 0.4, потом 0.8 итд

когда я сделал как вы сказали, то у меня получилось 0.1 потом сразу 0.4, а потом увеличение пошло правильно 0.8 итд . просто пропустилось 0.2 .

я не знаю как подругому написать . помоему тут упускается одна фаза прибавления .


функцию, что вам показал считает коэффициент правильно - как вы используете эту функцию - неизвестно

проверить легко - можно запустить - и посмотреть результат:

int init()
{
   Print("gp(0)=",gp(0),"  Fibonacci(0)=",Fibonacci(0));
   Print("gp(1)=",gp(1),"  Fibonacci(1)=",Fibonacci(1));
   Print("gp(2)=",gp(2),"  Fibonacci(2)=",Fibonacci(2));
   Print("gp(3)=",gp(3),"  Fibonacci(3)=",Fibonacci(3));
   Print("gp(4)=",gp(4),"  Fibonacci(4)=",Fibonacci(4));
   Print("gp(5)=",gp(5),"  Fibonacci(5)=",Fibonacci(5));
   Print("gp(6)=",gp(6),"  Fibonacci(6)=",Fibonacci(6));
   Print("gp(7)=",gp(7),"  Fibonacci(7)=",Fibonacci(7));
}

int start()
{
   return(0);
}

int gp(int n) {
  int i=1, s=0;

  if (n==1) s=1;
  if (n>1) {
    s=1;
    while (i<n) {
      i++;
      s=s*2;
    }
  }
  return(s);
}

int Fibonacci(int n) {
  int a=0, b=0, i=1, s=0;

  if (n==1) s=1;
  if (n>1) {
    s=1;
    while (i<n) {
      i++;
      a=b;
      b=s;
      s=a+b;
    }
  }
  return(s);
}
 

я не знаю как пояснить правильно то что мне нужно . но большое спасибо что откликнулись . если я смогу, то напишу то что мне нужно как то подругому . просто отрывок теста :

1 2011.02.24 06:00 buy stop 1 0.10 82.19 81.55 82.57 0.00 10000.00
2 2011.02.24 06:00 sell limit 2 0.10 82.16 82.77 81.75 0.00 10000.00
3 2011.02.24 06:00 buy limit 3 0.10 81.97 81.35 82.37 0.00 10000.00
4 2011.02.24 06:00 sell stop 4 0.10 81.95 82.57 81.55 0.00 10000.00
5 2011.02.24 08:28 buy 3 0.10 81.97 81.35 82.37 0.00 10000.00
6 2011.02.24 08:28 sell 4 0.10 81.95 82.57 81.55 0.00 10000.00
7 2011.02.24 08:28 delete 2 0.10 82.16 82.77 81.75 0.00 10000.00
8 2011.02.24 08:28 delete 1 0.10 82.19 81.55 82.57 0.00 10000.00
9 2011.02.24 08:28 buy stop 5 0.40 82.15 81.53 82.55 0.00 10000.00
10 2011.02.24 08:28 sell stop 6 0.40 81.77 82.39 81.37 0.00 10000.00
11 2011.02.24 10:39 sell 6 0.40 81.77 82.39 81.37 0.00 10000.00
12 2011.02.24 10:39 close 4 0.10 81.79 82.57 81.55 19.56 10019.56
13 2011.02.24 10:39 delete 5 0.40 82.15 81.53 82.55 0.00 10019.56
14 2011.02.24 10:39 buy stop 7 0.80 81.97 81.35 82.37 0.00 10019.56
15 2011.02.24 14:38 close 6 0.40 81.68 82.39 81.37 44.07 10063.63
16 2011.02.24 14:38 close 3 0.10 81.66 81.35 82.37 -37.96 10025.67
17 2011.02.24 14:38 delete 7 0.80 81.97 81.35 82.37 0.00 10025.67

ордер № 9 и 10 должны были быть 0.2 а не 0.4 . № 14 должен был быть соответственно 0.4 а не 0.8

в любом случаи, большое спасибо .

Причина обращения: