Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 483

 
culler:

Helfen Sie mir bei der Lösung eines Problems zur Bestimmung des Schnittpunkts zweier MA-Linien.

Ich weiß nicht, wie ich es beschreiben soll.

Es gibt MAfast und MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

Wenn (MAfast>MAslow) funktioniert es nur, wenn MAfast unten ist, wenn sie es überquert, fängt sie den Moment der Überquerung ab, aber dann ist MAfast oben und der Auftrag geht BUY ))))

Ich habe es in meinem Code, wie man das Moment der Kreuzung zu bestimmen und vergleichen ihre Richtung von unten nach oben oder umgekehrt.

In meinem Code ist es einfach mehr oder weniger. Daraus ergeben sich die Fehler.

wenn ((x1 - y1)*(x2 - y2) < 0)
{
// wir haben eine Schnittmenge
}
 
culler:

Helfen Sie mir bei der Lösung eines Problems zur Bestimmung des Schnittpunkts zweier MA-Linien.

Ich weiß nicht, wie ich es beschreiben soll.

Es gibt MAfast und MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

Wenn (MAfast>MAslow) funktioniert es nur, wenn MAfast unten ist, wenn sie es überquert, fängt sie den Moment der Überquerung ab, aber dann ist MAfast oben und der Auftrag geht BUY ))))

Ich habe es in meinem Code, wie man das Moment der Kreuzung zu bestimmen und vergleichen ihre Richtung von unten nach oben oder umgekehrt.

In meinem Code ist es einfach mehr oder weniger. Daraus ergeben sich die Fehler.

Hier gibt es eine Menge zu sehen und zu tun.
 
artmedia70:
wenn ((x1 - y1)*(x2 - y2) < 0)
{
// wir haben eine Schnittmenge
}


TarasBY:
Hier gibt es viel Interessantes für Sie zu entdecken.

Ich danke Ihnen. Ich danke Ihnen.
 
culler:

Helfen Sie mir bei der Lösung eines Problems zur Bestimmung des Schnittpunkts zweier MA-Linien.

Ich weiß nicht, wie ich es beschreiben soll.

Es gibt MAfast und MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

Wenn (MAfast>MAslow) funktioniert es nur, wenn MAfast unten ist, wenn sie es überquert, fängt sie den Moment der Überquerung ab, aber dann ist MAfast oben und der Auftrag geht BUY ))))

Ich habe es in meinem Code, wie man das Moment der Kreuzung zu bestimmen und vergleichen ihre Richtung von unten nach oben oder umgekehrt.

In meinem Code ist es einfach mehr oder weniger. Daraus ergeben sich die Fehler.


Ein sehr nützlicher Thread, und zu Ihrer Frage!
 
In der Dokumentation steht:

bool WindowIsVisible( int index)
Gibt TRUE zurück, wenn das Teilfenster des Diagramms sichtbar ist, andernfalls FALSE. Das Teilfenster des Diagramms kann aufgrund der Sichtbarkeitseigenschaften des darin platzierten Indikators ausgeblendet werden.
Parameter:
Index - Index des Teilfensters des Diagramms.
Beispiel:
 int maywin=WindowFind("MyMACD"); if(maywin>-1 && WindowIsVisible(maywin)==true) Print("MyMACD Fenster sichtbar"); else Print("MyMACD Fenster nicht gefunden oder nicht sichtbar")
;
Bitte erklären Sie, was das bedeutet: "Ein Teilfenster eines Charts kann aufgrund der Sichtbarkeitseigenschaften des darin platzierten Indikators ausgeblendet werden"? Was ist dieser Indikator Eigenschaft????
 

Gibt stopplay nicht einen int zurück?

Der Compiler gibt bei diesem Code eine Warnung "möglicher Datenverlust durch Typumwandlung" aus:

   int slevel = MarketInfo(Symbol(), MODE_STOPLEVEL);
да и на 
   int digits = MarketInfo( Symbol(), MODE_DIGITS);
тоже
 

Hilfe wird benötigt, ein Teil der Position wird beim Testen des EA nicht geschlossen

void Zacritie_poz_sell ()
{
 
 int    i, k=OrdersTotal();
 string sy=Symbol();
 
for (i=0; i<k; i++) 
{
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
 {
  if ( OrderSymbol() == sy)
   {
    if (OrderType()==OP_SELL)
     {
       if ( OrderMagicNumber()==Magic)
       {
        double TP = OrderTakeProfit();
        double Prise = OrderOpenPrice();
        double Close_poz = NormalizeDouble( Prise-(Prise-TP)/2,Digits);
        double Lots1 = NormalizeDouble (Lots/4,Digits);
        double TP1 = OrderTakeProfit()+1*Point;
        double SL = OrderOpenPrice()-20*Point;
         if ( Bid == Close_poz && OrderStopLoss() != SL && TP == TP1 && Lots != Lots1)
         {
          
           OrderClose(OrderTicket(),Lots1, Bid, 40*Point, Yellow);

           break;
           Sleep (1000*5);
           RefreshRates();
         
          
         }
         
       }
     }
  
    }
   }
 }
}
 
miha91:

Hilfe wird benötigt, ein Teil der Position wird beim Testen des EA nicht geschlossen


for (i=k-1; i>=0; i--)
 
evillive:

Gibt stopplay nicht einen int zurück?

Der Compiler erzeugt bei solchem Code die Warnung "Möglicher Datenverlust durch Typkonvertierung":

Explizite Typkonvertierung:

int slevel = (int)MarketInfo(Symbol(), MODE_STOPLEVEL);
Siehe... Die Funktion ist vom Typ double, aber der Request Identifier kann den Rückgabetyp int definieren. Deshalb ist es ein Fluch.
 

Ich optimiere einen EA, es gibt eine Menge Überschwinger, etwa 10^17 Grad, es gibt mehr Parameter, aber die können nicht mehr optimiert werden. Warum gibt es solche Einschränkungen?

Außerdem eine Frage zum genetischen Algorithmus. Bei so großen Daten scheint es nicht mehr richtig zu funktionieren, der endgültige Gewinn springt ziemlich dramatisch, oft sogar nach unten. Das heißt, jetzt hat sie rentable Einstellungen gefunden, aber nicht zu einem anderen Zeitpunkt. Werden die Entwickler das Problem beheben?