Frage zum Berater für mehrere Währungen - Seite 10

 
rid >> :
Allerdings muss gleichzeitig die Trailing-Stop-Funktion für alle Ticks implementiert werden.

Ein greifbarer Nutzen eines Topfschleppnetzes lässt sich nur auf einem kurzen Abschnitt auf Kosten der Anpassung erkennen.

In der Regel sind grobe Schleppnetze genauso gut (wenn die Schleppnetze nicht pipsen und scalpieren).

Aber die Vorteile der Optimierung des "Eröffnungspreises" bei der Verwendung eines Schleppnetzes gehen verloren, was sehr wichtig ist.

In letzter Zeit habe ich bei fast allen TCs auf Trailing-Stops verzichtet.

Die teilweise/vollständige Schließung einer Position (möglicherweise durch Umkehrung) durch ein Umkehrsignal funktioniert besser.

 

Und ich verwende ein Schwellenwert-Schleppnetz. Und wenn Sie die Startschwelle anpassen, gibt es einen Grund...

extern string   ____________= "Параметры Трейлинг стопа";
extern bool UseTrailing = false;
extern int lMinProfit = 150;
extern int sMinProfit = 160;
extern int lTrailingStop = 50;
extern int sTrailingStop = 60;
extern int lTrailingStep = 5;
extern int sTrailingStep = 5;
//--------------------------------------------------------
int start()
  {
  if(Time[0] == prevtime)   return(0);
   prevtime = Time[0];//если появился новый бар , включаемся
//-------------------------------------------------------------------   
if ( UseTrailing) TrailPositions(); //трейлинг стоп

//--------------------------------------------------------------
... ... ... ... ... ... ... ... ... ... ... ... 
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
void TrailPositions() //пороговый трейлинг стоп
{  int Orders = OrdersTotal();
  for (int i=0; i< Orders; i++) {
    if (!(OrderSelect( i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol() && OrderMagicNumber()== Magic) continue; 
    if (OrderType() == OP_BUY) {
      if (Bid-OrderOpenPrice() > lMinProfit*Point) {
        if (OrderStopLoss() < Bid-( lTrailingStop+ lTrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid- lTrailingStop*Point,
                                                    OrderTakeProfit(), 0, Blue);
        }}}
    if (OrderType() == OP_SELL) {
      if (OrderOpenPrice()-Ask > sMinProfit*Point) {
        if (OrderStopLoss() > Ask+( sTrailingStop+ sTrailingStep-1)*Point || 
                                                      OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+ sTrailingStop*Point,
                                                     OrderTakeProfit(), 0, Blue);
        }}}}}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
 

Generell verstehe ich nicht, was der Sinn eines Potikko-Schwellenschleppnetzes sein soll.

 

Guten Tag, liebe Kolleginnen und Kollegen. Wieder ein Problem.

Mit dem Indikator.

Ich kann die iCustom nicht schreiben.

Ich habe es so geschrieben:

double ActivatorBLUE=iCustom(NULL,0,"HL Next Activator", ActivatorPeriod, useFullPeriods,0,1);
//синие уровни на 1 баре
double ActivatorRED=iCustom(NULL,0,"HL Next Activator", ActivatorPeriod, useFullPeriods, 1,1);
//красные уровни на 1 баре
Comment( ActivatorBLUE,"-", ActivatorRED);

In beiden Fällen werden jedoch nur die Werte der blauen Stufe zurückgegeben. Ich verstehe nicht, warum! Immerhin habe ich Pufferzahlen von 1 bzw. 0 angegeben!

Auch im Kommentar werden die gleichen Werte angezeigt - blaue Stufe

So werden die Puffer im Indikator init definiert:

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(0, SellActivator);//синий
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   SetIndexBuffer(1, BuyActivator);//красный
   SetIndexEmptyValue(1,0.0);
   if ( useFullPeriods!=0) useFullPeriods=1;
//----
   return(0);
  }

Pozh. Vorschlag? Indikator im Upload (Autor des Indikators ist Rosh).

Dateien:
 
rid писал(а) >>

Guten Tag, liebe Kolleginnen und Kollegen. Wieder ein Problem.

Mit dem Indikator.

Kann nicht iCustom schreiben.

Ich habe es überprüft, es sieht so aus:

2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:48 2008.10.28 05:52 testhl EURUSD,H1: 0-1.2547
....
2008.10.29 15:13:48 2008.10.28 05:51 testhl EURUSD,H1: 0-1.2547
2008.10.29 15:13:48 2008.10.28 05:51 testhl EURUSD,H1: 0-1.2547
2008.10.29 15:13:47 2008.10.27 18:49 testhl EURUSD,H1: 1.2414-1.2542
.....
2008.10.29 15:13:47 2008.10.27 18:49 testhl EURUSD,H1: 1.2414-1.2542
2008.10.29 15:13:46 2008.10.27 14:54 testhl EURUSD,H1: 0-1.2612

Ich habe mich nicht damit beschäftigt, aber es scheint richtig zu sein, ich habe den Indikator mit Standardparametern genommen, Wertaufruf mit String

Print(iCustom(NULL,0,"HLdNextmActivator",0,1),"-",iCustom(NULL,0,"HLdNextmActivator", 1,1));
 

Ich danke Ihnen.

Das ist seltsam. Plötzlich klappt es auch bei mir. Es hat nichts gebracht, es hat nichts bewirkt.

Aber heute Morgen hat es nicht geklappt! Ich habe zwei Stunden gebraucht. "Ich wette..."

Das ist nicht das erste Mal, dass mir das auffällt. Ich werde etwas Einfaches für einen einfachen Truthahn machen. Plötzlich funktioniert es von Anfang an nicht mehr!

Ohne ersichtlichen Grund! Obwohl die Konstruktion die einfachste ist. In Ordnung, denke ich. Ich werde es später noch einmal versuchen...

Und dann schalte ich ihn ein und siehe da, er funktioniert genau so, wie er soll!

Es ist wie ein Wunder...

Ich habe das einmal mit einem Parabolspiegel gemacht. Ich habe die Bedingungen für die Eröffnung einer Position beim Wechsel des "Vorzeichens" der Parabel festgelegt.

Es war der primitivste Zustand. Im Testgerät hat es nicht funktioniert! Zwei Tage lang habe ich geflucht und versucht, herauszufinden, was los war. Ich habe es nicht verstanden. Ich konnte es nicht herausfinden, ich dachte, ich würde es später herausfinden. Einen Tag später schaltete ich es ein und... - ...es funktionierte wie ein Uhrwerk...

 
rid >> :

.............. dann ... Dann, einen Tag später, schaltete ich es ein und... - Ich sehe, es läuft wie ein Uhrwerk...

Der Mann kommt zu dem Uhrmacher.

- Dieser ist kaputt.

Der Mechaniker öffnet die Uhr und eine tote Kakerlake fällt heraus.

- Es wird aber nicht funktionieren.

- Warum nicht?

- Der Mechanismus ist jedoch tot.

 

Guten Tag, liebe Kolleginnen und Kollegen. Ich kann das Problem nicht lösen.

Der Expert Advisor platziert schwebende Aufträge, z.B. OP_BUYSTOP - vier Aufträge

OP_BUYSTOP magisch 1

OP_BUYSTOP magisch 2

OP_BUYSTOP magisch 3

OP_BUYSTOP magisch 4

Platziert sie - in einem bestimmten Abstand zum Preis und in einem bestimmten Abstand zueinander.

Weiter. Wenn der Preis gesunken ist, müssen die Aufträge dem Preis mit dem angegebenen Schritt folgen.

Ich habe es getan. Wir sind hier auf keine besonderen Schwierigkeiten gestoßen.

 

Aber!

Ich möchte nicht, dass sich alle Aufträge ändern und dem Kurs hinterherlaufen, was die Aufmerksamkeit des Brokers mit unnötigen Anfragen an den Server erregt.

Ich möchte, dass die Bestellung, die am weitesten vom aktuellen Preis entfernt ist, alle anderen überspringt und die nächstgelegene Bestellung wird!

Und so weiter, so dass bei einer weiteren Preisbewegung nach unten die am weitesten entfernten Aufträge immer näher an den Preis heranrücken würden!

Ich habe mehrere Stunden lang nachgedacht und komme nicht annähernd auf eine Lösung.

Ich komme nicht einmal in die Nähe der Lösung.

Oder gibt es vielleicht einen Hinweis auf etwas Ähnliches?

Ich habe die Funktion in einer Filiale von I. Kim gefunden. Aber wie man sie hier anwenden kann, ist noch nicht klar.

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

Funktion GetIndexByTicket(). Diese Funktion gibt den Index der Bestellung oder Position durch das Ticket zurück

Die Funktion IndexByTicket(). Diese Funktion liefert den Index (die Indexnummer in der allgemeinen Liste der eingestellten Aufträge oder offenen Positionen) des Auftrags oder der Position innerhalb des Tickets

Funktion GetOrderOpenPrice(). Gibt den eingestellten Preis der zuletzt aufgegebenen Bestellung zurück

 

Erstellen Sie zwei Arrays. Eine nach Ticketnummer, die zweite nach Preis. Dann sortieren Sie das Feld nach dem Preis und verschieben gleichzeitig die Ticketnummern (ohne die Verbindung zu unterbrechen). Am einen Ende des Feldes steht dann der niedrigste Preis, am anderen der höchste Preis. Das Einzige, was noch bleibt, ist die Änderung einer der äußersten Ordnungen.

Grund der Beschwerde: