Fonctions utiles de KimIV - page 97

 

le terminal a une option pour définir le canal équidistant, vous pouvez le définir au lieu de dessiner les lignes de tendance

voici une fonction similaire au réglage de la ligne de tendance

// установка равноудалённого канала
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 писал(а) >>

Il semble être sur la droite.

Oups...

 
DECIDE >>:

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

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

intéressant

comment régler la distance entre les lignes ?

 

la distance se règle toute seule, il suffit d'indiquer trois points t1,p1,t2,p2,t3,p3

J'ai abandonné cette fonction (elle a une ligne courte), il est plus facile, plus instructif de dessiner des lignes de tendance

 
DECIDE >>:

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

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

définir la distance entre les lignes

la deuxième ligne est censée être décalée par rapport à la première ligne (de tendance) et lui être parallèle horizontalement d'une certaine valeur de barres - par exemple, de 5 barres

il s'agit également d'un canal équidistant qui coupe les pointes vers le haut ou vers le bas en fonction du réglage de la ligne de base et de la direction de la tendance.

 

La fonction supprime les zéros du tableau dupliqué et renvoie l'index du minimum du tableau.

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));
}
 

Bonjour à tous !

Je ne sais pas si cette question a déjà été abordée... Mais je voulais suggérer de faire une fonction pour les EAs pour travailler avec un solde fixe.

Ceci est nécessaire pour optimiser les EA.

Ce que nous avons ici est le suivant : lorsque nous lançons l'EA, elle commence à gagner de l'argent et AccountBalance commence à augmenter et l'EA utilise un montant toujours croissant de solde.

Si nous introduisons une variable, telle que Valance, et y fixons un montant, que l'EA "verra" et n'achètera que pour ce montant. Cela nous permettra de penser qu'à chaque fois que le conseiller expert commencera à travailler, il pensera qu'il ne dispose que de l'argent du solde et, sur l'ensemble de la période de test, nous serons en mesure de croire comment l'EA fonctionnerait si nous l'activions chaque jour, en excluant le facteur de changement du solde réel.

Optimisé avec cette variable, le Conseiller Expert fonctionnera plus normalement à l'avenir.

La seule chose qui reste à faire est de coder une telle fonction.

C'est tout ce que je sais :

extern double Balance = 10000 ;

int init() {

//fixe le solde au début de l'opération EA

Solde=Solde du compte ;

retour (0) ;

}

int start {

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

? ??

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

}

Et qu'est-ce qu'il faut écrire dans ? ?? Je ne sais pas. Si l'EA avait une fonction qui calcule le nombre possible d'ordres ouverts avec un lot donné, en utilisant AccountBalance, vous pourriez simplement remplacer AccountBalance() par une variable, mais tous les EA ne le font pas explicitement.

 

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

J'ai résolu ce problème de la manière suivante

J'ai beaucoup de conseillers experts différents et lorsque je lance l'un d'entre eux, pour la première fois dans la journée, le solde du compte est stocké dans une variable globale et, sur cette base, les conseillers experts calculent le nombre de lots et le revenu qui en résulte, en affichant l'information sur le graphique dans les commentaires (rendement : un tel et un tel %).

 
DECIDE писал(а) >>

J'ai beaucoup de différents EAs et quand je démarre l'un d'entre eux, la première fois par jour, le solde du compte est sauvegardé dans une variable globale et sur cette base les EAs calculent le nombre de lots et le revenu qui en résulte, montrant l'information sur le graphique dans les commentaires (rendement : untel %).

Pouvez-vous nous expliquer en détail comment procéder ?

 

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

Geronimo, décrivez l'algorithme de manière plus détaillée dans mon compte personnel ou ICQ : 9773190, n'encombrons pas le fil de discussion.

Je peux vous aider de quelque manière que ce soit.

partager les détails sur la façon de le faire ?

Nail_Saby, j'ai décrit l'essentiel, et vous pouvez l'implémenter de différentes manières, cela dépend de comment et de ce dont vous avez besoin exactement.