Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 271
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
so dass nur der erste Wert mit dem Index [0] ausgefüllt wird.
Danke. Das hat mir ein schlafloses Wochenende erspart).
vicmos danke.
sie füllt alles mit einem Wert, wie die Funktion ArrayFill(...)/
Guten Tag an alle! Ein solches Problem - der Compiler gibt eine Warnung aus. Ich will es nicht ignorieren, können Sie mir helfen, einen Ausweg zu finden?
Er flucht insbesondere in der letzten Zeile, in der es heißt:"möglicher Datenverlust aufgrund der Typkonvertierung". Wie lässt sich der reale Typ in diesem Fall korrekt normalisieren?
Guten Tag an alle! Ein solches Problem - der Compiler gibt eine Warnung aus. Ich will es nicht ignorieren, können Sie mir helfen, einen Ausweg zu finden?
Er flucht insbesondere in der letzten Zeile, in der es heißt:"möglicher Datenverlust aufgrund der Typkonvertierung". Wie lässt sich der reale Typ in diesem Fall korrekt normalisieren?
Guten Tag zusammen, das ist ein Problem - der Compiler gibt eine Warnung aus. Ich möchte es nicht ignorieren, können Sie mir helfen, einen Ausweg zu finden?
Insbesondere in der letzten Zeile wird geflucht:"möglicher Datenverlust aufgrund der Typkonvertierung". Wie lässt sich der reale Typ in diesem Fall korrekt normalisieren?
Und noch etwas: ArrayMaximum und ArrayMinimum geben den Index des gefundenen Elements zurück. Der richtige Weg ist also dieser:
Außerdem: ArrayMaximum und ArrayMinimum geben den Index des gefundenen Elements zurück. Der richtige Weg ist also der folgende:
Es berechnet die Gewinnmitnahme nicht korrekt auf der Grundlage der Höhe der Verluste der geschlossenen Aufträge. Es stellt sich heraus, dass die 1. Ordnung = 1; 2. Ordnung = 2; 3. Ordnung = 3; 4. Wir müssen die Anzahl der Pips berechnen, um den Verlust aller vorherigen Aufträge zu decken und 10 % des Gesamtverlustes zu gewinnen.
Tatsächlich betrachtet der Expert Advisor den Betrag jeder geschlossenen Order als gleichwertig mit der vermeintlich ausstehenden Order, d.h. seine Berechnungen zeigen, dass, wenn die ausstehende fünfte Order 5 Lots beträgt, alle vorherigen Verlust-Orders gleich 5 Lots waren, und daher wird der Verlust mit dem entsprechenden falschen Gewinnniveau berechnet. Mit anderen Worten, wenn das Gesamtvolumen von 4 Aufträgen 10 Lots beträgt, dann wird der Expert Advisor einfach 4 Aufträge mit dem Volumen des 5. ausstehenden Auftrags multiplizieren und ein Gesamtvolumen von 20 Lots erhalten......Was sollten wir im Code korrigieren?
// Funktion zur Berechnung des Take Levels basierend auf dem Loss Level der abgeschlossenen Trades
//=================================================================================================
double TakeProfitCalculate(double lot,int type)
{
int n,i;
doppelt prf,ttp;
prf=MathAbs(BuyLevel-SellLevel)/Point*LOT*MarketInfo(Symbol(),MODE_TICKVALUE);//
if(No!=0) for(i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) weiter;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()<MAGIC || OrderMagicNumber()>MAGIC+200 || OrderType()>OP_SELL) weiter;
n=OrderMagicNumber()-MAGIC;
prf+=(OrderProfit()+OrderSwap()+OrderCommission());
if(n==0) break;
}
prf=MathAbs(prf*(100+ProfitPercent)/100);
ttp=prf*Point/(LOT*MarketInfo(Symbol(),MODE_TICKVALUE))
if(type==OP_BUY) return(NRu(BuyLevel+ttp)); else return(NRd(SellLevel-ttp))
}