Funciones útiles de KimIV - página 97

 

el terminal tiene una opción para establecer el canal equidistante, puede establecerlo en lugar de dibujar las líneas de tendencia

aquí hay una función similar a la configuración de la línea de tendencia

// установка равноудалённого канала
void SetСhannel(string nm,datetime t1,double p1,datetime t2,double p2,datetime t3,double p3,color cl=Red,int st=0,int wd=1,bool ry= False){
// Параметры:
// nm - наименование               (  ""  - текущее время)
// t1,t2,t3 - время открытия бара  (  0   - Time[10]
// p1,p2,p3 - ценовой уровень      (  0   - Low[10])
// cl - цвет линий
// st - стиль линий                (  0   - простая линия)
// wd - ширина линий               (  1   - по умолчанию)
// ry - луч                        (False - по умолчанию)

  if( nm=="") nm=TimeToStr(TimeCurrent(), TIME_DATE| TIME_SECONDS);
  if(ObjectFind( nm)<0){
   ObjectCreate( nm,OBJ_CHANNEL,0, t1, p1, t2, p2, t3, p3);
   ObjectSet( nm, OBJPROP_COLOR, cl);
   ObjectSet( nm, OBJPROP_STYLE, st);
   ObjectSet( nm, OBJPROP_WIDTH, wd);
   ObjectSet( nm, OBJPROP_RAY, ry);
  }
  ObjectSet( nm, OBJPROP_TIME1, t1);
  ObjectSet( nm, OBJPROP_PRICE1, p1);
  ObjectSet( nm, OBJPROP_TIME2, t2);
  ObjectSet( nm, OBJPROP_PRICE2, p2);
  ObjectSet( nm, OBJPROP_TIME3, t3);
  ObjectSet( nm, OBJPROP_PRICE3, p3);
}
 
Roger писал(а) >>

Parece que está a la derecha.

oops...

 
DECIDE >>:

в терминале есть возможность установки равноудалённого канала, можно вместо отрисовки трендовых линий устанавливать его

вот составил функцию по подобию установки трендовой линии

interesante

¿Cómo se ajusta la distancia entre las líneas?

 

la distancia se establece por sí misma, sólo hay que indicar tres puntos t1,p1,t2,p2,t3,p3

He renunciado a esta función (tiene una línea corta), es más fácil, más instructivo dibujar líneas de tendencia

 
DECIDE >>:

растояние само устанавливается, надо только указать три точьки t1, p1, t2, p2, t3, p3

отказался я от этой функции(там одна линия короткая), проще, нагляднее просто трендовые линии рисовать

establecer la distancia entre las líneas

la segunda línea se supone desplazada con respecto a la primera línea (de tendencia) y paralela a ella horizontalmente por un determinado valor de barras - por ejemplo, por 5 barras

También se trata de un canal equidistante que corta los picos hacia arriba o hacia abajo según la configuración de la línea de base y la dirección de la tendencia.

 

La función elimina los ceros de la matriz duplicada y devuelve el índice del mínimo de la matriz

int ArrMin(double & x[]){
  while( x[ArrayMinimum( x)]==0){
    for(int i=ArrayMinimum( x); i<ArraySize( x)-1; i++){
      x[ i]= x[ i+1];
    }
    ArrayResize( x,ArraySize( x)-1);
  }
  return(ArrayMinimum( x));
}
 

¡Buenas tardes a todos!

No sé si este tema ya se ha discutido... Pero quería sugerir que se haga una función para que los EAs trabajen con un saldo fijo.

Esto es necesario para optimizar los EA.

Lo que tenemos aquí es lo siguiente: cuando iniciamos el EA, éste empieza a ganar y el AccountBalance empieza a aumentar y el EA utiliza una cantidad de saldo cada vez mayor.

Si introducimos una variable, como Valance, y fijamos en ella una cantidad, que el EA "verá" y comprará sólo por esa cantidad. Esto nos permitirá pensar que cada vez que el EA empiece a funcionar, pensará que sólo tiene dinero de Balance a su disposición y durante todo el periodo de pruebas podremos creer cómo funcionaría el EA si lo cambiamos en un día cualquiera, excluyendo el factor del cambio de balance real.

Optimizado con esta variable, el Asesor Experto funcionará más normalmente en el futuro.

Lo único que queda por hacer es codificar dicha función.

Esto es todo lo que sé:

extern double Balance = 10000;

int init() {

//fijar el saldo al inicio de la operación EA

Saldo=Saldo de la cuenta;

retorno (0);

}

int inicio {

//-------------------------

???

//-------------------------

}

¿Y qué se escribe en la página web? No lo sé. Si el EA tuviera una función en la que calculara el número posible de órdenes abiertas con un lote determinado, utilizando AccountBalance, podría simplemente sustituir AccountBalance() por una variable, pero no todos los EAs hacen esto explícitamente.

 

Не знаю, может этот вопрос уже обсуждался... Но я хотел предложить сделать функцию для работы советника с фиксированным балансом.

He resuelto este problema de esta manera

Tengo muchos Asesores Expertos diferentes y cuando inicio cualquiera de ellos, por primera vez al día, el saldo de la cuenta se almacena en una variable global y en base a ello los Asesores Expertos calculan el número de lotes y el ingreso resultante, mostrando la información en el gráfico en los comentarios (rendimiento: tal y tal %)

 
DECIDE писал(а) >>

Tengo un montón de EAs diferentes y cuando inicio cualquiera de ellos, la primera vez al día, el saldo de la cuenta se guarda en una variable global y en base a eso los EAs calculan el número de lotes y el ingreso resultante, mostrando la información en el gráfico en los comentarios (rendimiento: tal y tal %)

¿Puede compartir con nosotros los detalles de cómo se puede hacer?

 

нужна мне такая возможность - параллельного горизонтального смещения (копирования, переноса...) трендовой линии на определенное кол-во баров

Geronimo, describe el algoritmo con más detalle en mi personal o en el ICQ: 9773190, no abarrotemos el hilo

De cualquier manera puedo ayudar

¿compartir los detalles de cómo hacerlo?

Nail_Saby, he descrito lo esencial, y puedes implementarlo de diferentes maneras, depende de cómo y qué necesites exactamente