Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
ilunga
744
ilunga  
azik1111:

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

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

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

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

ilunga
744
ilunga  
azik1111:

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

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

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

вот отрывок кода увеличения объема последующего ордера по ряду фибоначи. можно из него сделать простую прогрессию геометрическую, когда следующий будет в 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);
}
Andrey F. Zelinsky
31776
Andrey F. Zelinsky  
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);
}
azik
139
azik  

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

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

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

Andrey F. Zelinsky
31776
Andrey F. Zelinsky  
azik1111:

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

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

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

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

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

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

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

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

Andrey F. Zelinsky
31776
Andrey F. Zelinsky  
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);
}
azik
139
azik  

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

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

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

12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий