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

 
paladin80:

Die Pässe, die ins Defizit geraten sind, werden nicht angezeigt. Klicken Sie mit der rechten Maustaste auf ein beliebiges Optimierungsergebnis und entfernen Sie das Häkchen bei "Unbrauchbare Ergebnisse überspringen".




es geht nicht um Optimierung.

der Test ist eine einmalige Sache.

und die Ergebnisse in den verschiedenen Registerkarten unterscheiden sich um 30, wie ich oben angegeben habe

 
lottamer:


es geht nicht um Optimierung.

der Test ist ein einmaliger Vorgang.

und die Ergebnisse variieren um 30 in verschiedenen Registerkarten, wie ich oben angegeben habe

Legen Sie einen Screenshot des Berichts mit den Problembereichen bei und lassen Sie uns einen Blick darauf werfen. Oder laden Sie den gesamten Bericht hoch.
 

Liebe Programmierer, erklären Sie diesen Punkt, hier ist der Algorithmus, der das Los für Money Managment berechnet, aber das Problem ist, dass, sobald er versteht, dass ein Los zu öffnen weniger als 0,01 d.h. zulässig, dann natürlich folgt Order Send Error und auf Wiedersehen, beraten, was zu geben, um weniger als 0,01 Lot öffnen kann nicht sein, auch wenn der Algorithmus so erfordert.

double GetSizeLot()
{  
  if (MM==false) 
      MMLot=Lots;
      
  if (MM==true)
     {
      MMLot=((AccountFreeMargin()*TradeLotRiskPercent)/100000);
     }
  return(MMLot);
}
 
ZahvatkiN:

Liebe Programmierer, erklären Sie diesen Punkt, hier ist der Algorithmus, der die Menge für Money Managment berechnet, aber das Problem ist, dass, sobald er versteht, dass eine Menge weniger als 0,01 dh zulässig zu öffnen, dann natürlich folgt Order Send Error und auf Wiedersehen, beraten, was zu geben, um weniger als 0,01 Lot öffnen kann nicht sein, auch wenn der Algorithmus erfordert es.

1. Es ist notwendig, zu normalisieren.

2. und die Mindestmenge festlegen.

MMLot=NormalizeDouble(MathMax((AccountFreeMargin()*TradeLotRiskPercent)/100000,MinLot),2);
 
ZahvatkiN:

Liebe Programmierer, erklären Sie diesen Punkt, hier ist der Algorithmus, der die Menge für Money Managment berechnet, aber das Problem ist, dass, sobald er erkennt, dass eine Menge weniger als 0,01 d.h. zulässig zu öffnen, dann natürlich folgt Order Send Error und auf Wiedersehen, sagen Sie mir, was zu geben, dass weniger als 0,01 viel nicht öffnen kann, auch wenn der Algorithmus es erfordert.

double GetSizeLot(double TradeLotRiskPercent)
{  
   double MMLot, MinLot, MaxLot;
   //---
   MinLot=MarketInfo(Symbol(),MODE_MINLOT);
   MaxLot=MarketInfo(Symbol(),MODE_MAXLOT);
   //---
   MMLot=AccountFreeMargin()*TradeLotRiskPercent)/100000;
   if (MMLot<=MinLot) return(MinLot);
   if (MMLot>=MaxLot) return(MaxLot);
   else 
   {  MMLot=NormalizeDouble(MMLot,2);
      return(MMLot);
   }
}

Sie haben die Formel zur Berechnung von MMLot geteilt durch 100000. Wahrscheinlich rechnen Sie mit einem Hebel von 1:100 und einem normalen Konto, bei dem die Lotgröße 100000 der Basiswährung (z.B. USD) beträgt. Wenn Sie einen solchen EA auf ein Cent-Konto (Lot = 10000) und/oder mit einem anderen Leverage werfen, wird er das Lot nicht korrekt zählen. Versuchen Sie dieses Design:

double GetSizeLot(double TradeLotRiskPercent)
{  
   double MMLot, MinLot, MaxLot;
   int    LotSize, Leverage;
   //---
   MinLot  =MarketInfo(Symbol(),MODE_MINLOT);
   MaxLot  =MarketInfo(Symbol(),MODE_MAXLOT);
   LotSize =MarketInfo(Symbol(),MODE_LOTSIZE);
   Leverage=AccountLeverage();
   //---
   MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100*Leverage/LotSize;
   if (MMLot<=MinLot) return(MinLot);
   if (MMLot>=MaxLot) return(MaxLot);
   else 
   {  MMLot=NormalizeDouble(MMLot,2);
      return(MMLot);
   }
}
 
Wennich das Alpari_ECN_Live-Konto mit einem Hebel von 1:500 und TradeLotRiskPercent=10 verwende , d.h. 10% von 1000$ Einzahlung, werden die Lots ab 0,5 arbeiten. Diese Formel gilt also nur für einen Hebel von 1:100? Ich vermute, es gibt keinen universellen Code für jede Art von Hebelwirkung und jedes Konto?
 
ZahvatkiN:
Wennich das Alpari_ECN_Live-Konto mit einem Hebel von 1:500 und TradeLotRiskPercent=10 verwende , d.h. 10% von 1000$ Einzahlung, beginnen die Lots mit 0,5 zu arbeiten. Also gilt diese Formel nur für einen Hebel von 1:100? Ich vermute, es gibt keinen universellen Code für jede Art von Hebelwirkung und jedes Konto?
Ich denke, meine 2 Formel (vom 23.08.2013 07:30) berechnet das Los richtig. Sehen Sie 10% von $1000 = $100 (Einzahlung), mit einer Hebelwirkung von 1:500 gibt Ihnen der Broker die Möglichkeit, ein Geschäft von $50.000 zu eröffnen. 1 Lot bei einem Broker ist $100.000, dann sind Ihre $50.000 0,5 Lots.
MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100*Leverage/LotSize.
MMLot=1000*10/100 * 500/100000 = 100 * 500/100000 = 50000 / 100000 = 0,50
 
paladin80:
Ich denke, meine Formel 2 (vom 23.08.2013 07:30) berechnet das Los richtig. Siehe 10% von $1000 = $100 (Einzahlung), mit einem Hebel von 1:500 gibt Ihnen der Broker die Möglichkeit, einen Handel von $50.000 zu eröffnen. 1 Lot bei einem Broker ist $100.000, dann sind Ihre $50.000 0,5 Lots.
MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100*Leverage/LotSize.
MMLot=1000*10/100 * 500/100000 = 100 * 500/100000 = 50000 / 100000 = 0,50

Sama die Formel selbst ist ohne Fehler berechnet, nur in der Idee von 10% von 1000 ist eine Menge 0,1 statt 0,5) Hier ist es klar, warum 0,5, weil der Hebel von 1:500, wäre es eine Schulter 1:100 wäre es eine Menge nur 0,1 so stellt sich die Frage, aber gibt es einen universellen Algorithmus für die Berechnung der Menge für jede Hebelwirkung und Kontotyp, oder für jeden seine eigene?
 

Liebe Forumsnutzer, helfen Sie mir, die Koordinaten des Pfeils zu finden

string arrowName=TimeToStr(Time[i]);

ObjectCreate(arrowName+ " Arrow",...);

Ich mache einen Expert Advisor, der auf einem Indikator basiert, und ich erhalte Pfeile über iCustom, aber ich weiß nicht, wie ich die Koordinaten von mehreren aktuellen Pfeilen finden kann.

 
nazar77:
Helfen Sie mir, den Indikator zu dekompilieren. Ich werde nicht weiter dekompilieren als ich, das garantiere ich Ihnen.
Fahr zur Hölle!!!