Nützliche Funktionen von KimIV - Seite 97

 

das Terminal verfügt über eine Option zur Einstellung des äquidistanten Kanals, die Sie anstelle der Trendlinien einstellen können

Hier ist eine Funktion, die der Einstellung der Trendlinie ähnelt

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

Es scheint auf der rechten Seite zu sein.

Ups...

 
DECIDE >>:

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

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

interessant

Wie stellt man den Abstand zwischen den Linien ein?

 

der Abstand wird von selbst festgelegt, Sie müssen nur drei Punkte angeben: t1,p1,t2,p2,t3,p3

Ich habe diese Funktion aufgegeben (sie hat eine kurze Linie), es ist einfacher und aufschlussreicher, Trendlinien zu zeichnen

 
DECIDE >>:

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

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

den Abstand zwischen den Linien festlegen

die zweite Linie soll gegenüber der ersten (Trend-)Linie um eine bestimmte Anzahl von Balken - beispielsweise um 5 Balken - verschoben werden und parallel zu ihr verlaufen

Auch hier handelt es sich um einen äquidistanten Kanal, der die Spikes je nach Grundeinstellung und Trendrichtung nach oben oder unten schneidet.

 

Die Funktion entfernt Nullen aus dem duplizierten Array und gibt den Index des Minimums des Arrays zurück

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

Guten Tag zusammen!

Ich weiß nicht, ob dieses Thema bereits diskutiert wurde... Aber ich wollte vorschlagen, eine Funktion für EAs zu schaffen, die mit einem festen Saldo arbeiten.

Dies ist für die Optimierung von EAs notwendig.

Die Situation sieht folgendermaßen aus: Wenn wir den EA starten, beginnt er zu verdienen, und der Kontostand nimmt zu, und der EA verbraucht einen immer größeren Teil des Guthabens.

Wenn wir eine Variable einführen, wie z.B. Valance, und darin einen Betrag festlegen, den der EA "sieht" und nur für diesen Betrag kauft. Auf diese Weise können wir davon ausgehen, dass der Expert Advisor jedes Mal, wenn er zu arbeiten beginnt, davon ausgeht, dass er nur über Guthaben verfügt, und über den gesamten Testzeitraum hinweg können wir uns vorstellen, wie der EA arbeiten würde, wenn wir ihn an einem bestimmten Tag umschalten würden, wobei der Faktor der realen Guthabenveränderung nicht berücksichtigt wird.

Optimiert mit dieser Variable, wird der Expert Advisor in Zukunft normaler arbeiten.

Das Einzige, was noch zu tun ist, ist die Programmierung einer solchen Funktion.

Das ist alles, was ich weiß:

extern double Balance = 10000;

int init() {

//den Saldo zu Beginn des EA-Vorgangs festlegen

Balance=AccountBalance;

zurück (0);

}

int start {

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

???

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

}

Und was schreibt man in den Briefkasten? Ich weiß es nicht. Wenn der EA eine Funktion hätte, mit der er die mögliche Anzahl offener Aufträge mit einem bestimmten Lot unter Verwendung von AccountBalance berechnet, könnten Sie AccountBalance() einfach durch eine Variable ersetzen, aber nicht alle EAs tun dies ausdrücklich.

 

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

Ich habe dieses Problem folgendermaßen gelöst

Ich habe viele verschiedene Expert Advisors, und wenn ich einen von ihnen zum ersten Mal am Tag starte, wird der Kontostand in einer globalen Variablen gespeichert, und auf dieser Grundlage berechnen die Expert Advisors die Anzahl der Lots und den daraus resultierenden Ertrag, wobei die Informationen im Diagramm in den Kommentaren angezeigt werden (Ertrag: so-und-so %)

 
DECIDE писал(а) >>

Ich habe eine Menge verschiedener EAs und wenn ich einen von ihnen starte, das erste Mal am Tag, wird der Kontostand in einer globalen Variablen gespeichert und darauf basierend berechnen die EAs die Anzahl der Lots und den daraus resultierenden Ertrag, wobei Informationen auf dem Diagramm in den Kommentaren angezeigt werden (Ertrag: so-und-so %)

Können Sie uns mitteilen, wie das im Einzelnen geschehen kann?

 

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

Geronimo, beschreiben Sie den Algorithmus im Detail in meinem persönlichen oder ICQ: 9773190, lassen Sie uns nicht überladen den Thread

Wie kann ich helfen?

die Einzelheiten mitteilen, wie das geht?

Nail_Saby, ich habe das Wesentliche beschrieben, und Sie können es auf verschiedene Arten implementieren, je nachdem, wie und was genau Sie brauchen