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
Es ist ganz einfach:
Platzieren Sie so etwas am Anfang der start()-Prozedur Ihres EAs und es wird verhindern, dass er arbeitet, wenn der Verlust (oder Gewinn), der an diesem Tag bereits gemacht wurde, einen bestimmten Betrag überschreitet:
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
totalProfit += OrderProfit()+OrderCommission()+OrderSwap();
}
if (totalProfit < someProfitLossLimit) return(0);
[/PHP]Sehr geehrter Herr MLADEN....
THANKSSSSS A LOT für die oben genannten Codes.... IOU 2 Kredite.....
[PHP]
double totalProfit=0;
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() == Symbol()) continue;
if (OrderMagicNumber() == someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
totalProfit += OrderProfit()+OrderCommission()+OrderSwap();
}
if (totalProfit < someProfitLossLimit) return(0);
Nur zur Überprüfung..... verhindert dieser Code weitere Aufträge für ein bestimmtes Währungspaar und MagicNumber...., wenn der heutige GESAMTVERLUST someProfitLossLimit überschreitet
Danke für die sehr schnelle Antwort....
Beste Grüße
AZRUL...
Sehr geehrter Herr MLADEN....
VIELEN DANK für die oben genannten Codes.... IOU 2 Kredite.....
double totalProfit=0;
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() == Symbol()) continue;
if (OrderMagicNumber() == someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
totalProfit += OrderProfit()+OrderCommission()+OrderSwap();
}
if (totalProfit < someProfitLossLimit) return(0);
[/PHP]
Just to check..... will this code prevent any more orders from a specific currency pair and MagicNumber.... if today's ACCUMULATED LOSS exceed someProfitLossLimit....
Thanks for the very-very fast reply....
best regrads
AZRUL...Ja
Er verhindert die weitere Verarbeitung des Codes, wenn der kumulierte Gewinn der geschlossenen Aufträge unter einem bestimmten Betrag liegt. Sie können die letzte Zeile durch diese ersetzen:
[PHP]if (totalProfit < 0 && totalProfit < someProfitLossLimit) return(0);Um sicherzustellen, dass dies nur in Fällen geschieht, in denen der kumulierte "Gewinn" negativ ist (wenn es Verluste gab)
Ja
Sie verhindert die weitere Verarbeitung des Codes, wenn der kumulierte Gewinn der geschlossenen Aufträge unter einem bestimmten Betrag liegt. Sie können die letzte Zeile durch diese ersetzen:
Sehr geehrter Herr MLADEN...
Es tut mir sehr leid, Sir... Ich glaube, ich habe mich nicht klar genug ausgedrückt.....
Meine Absicht ist, dass ein Code für die Überwachung des Kumulierten Verlustes nur für ein bestimmtes Währungspaar und MagicNumber.... Nicht einschließlich des Gewinns, den es macht... NUR LOSS zählt...
ENTSCHULDIGUNG FÜR DIE VERWIRRUNG...
Beste Grüße..
AZRUL...
Sehr geehrter Herr MLADEN...
Tut mir leid, Sir... Ich denke, ich habe es nicht klar genug für Sie gemacht.....
Meine Absicht ist, dass ein Code zur Überwachung des Kumulierten Verlustes nur für ein bestimmtes Währungspaar und MagicNumber.... Nicht einschließlich des Gewinns, den es macht... NUR LOSS zählt...
ENTSCHULDIGUNG FÜR DIE VERWIRRUNG...
Beste Grüße..
AZRUL...AZRUL
Der Gewinn kann negativ sein (==Verlust) In der Liste der geschlossenen Orders gibt es ein Feld namens Order()-Gewinn, das den "Gewinn" festhält: positiv für gewinnende Orders und negativ für verlierende Trades. Dieser Code macht genau das, was Sie brauchen
Sehr geehrter Herr MLADEN,
Die Theorie ist folgende.... wenn heute ein SEITENMARKT ist, werde ich am Ende einen Teil des Gewinns (wenn überhaupt) verlieren, der gemacht wurde und X$ RISIKO auf mein Kapital.... Das ist kein Schutz gegen einen sehr SCHLECHTEN HANDELSTAG.....
Der Grund dafür ist, dass ich bereit bin, ein RISIKO von X$ pro Tag aus dem heutigen Handel einzugehen....
Die oben genannten Codes werden alle Gewinne (wenn überhaupt) für den Tag auffressen, und sie werden auch mein RISIKO (Kapital) auffressen...
DANKE
Mit freundlichen Grüßen...
AZRUL...
AZRUL Profit kann negativ sein (==Verlust) In der Liste der geschlossenen Orders gibt es ein Feld namens Order() profit, das den "Profit" festhält: positiv für gewinnende Orders und negativ für verlierende Trades. Dieser Code macht genau das, was Sie brauchen
Sehr geehrter Herr MLADEN...
Danke, dass Sie mich über den obigen Vorschlag aufgeklärt haben...
Ich werde versuchen, nach einem Ergebnis zu suchen....
Mit freundlichen Grüßen
AZRUL...
Sehr geehrter Herr MLADEN,
Werden die folgenden Codes den Trick tun...
Behalten Sie den Kumulierten Verlust nur für ein bestimmtes Währungspaar und MagicNumber.... im Auge. Nicht einschließlich der Gewinn, dass es macht... NUR der LOSS zählt...
extern double LossAmount = -500.00
...............
int start()
if(LossRisk()<=LossAmount)
return(0);
...............
void LossRisk()
double totalLoss=0;
{
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() == Symbol()) continue;
if (OrderMagicNumber() == someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
totalLoss -= OrderProfit()+OrderCommission()+OrderSwap();
}
return(totalLoss);
}
Ihr Wissen wird sehr geschätzt...
Mit freundlichen Grüßen
AZRUL....
Sehr geehrter Herr MLADEN,
Werden die folgenden Codes tun den Trick ...
Behalten Sie den Kumulierten Verlust nur für ein bestimmtes Währungspaar und MagicNumber.... im Auge. Ohne Berücksichtigung des Gewinns, den es macht... NUR der VERLUST zählt...
extern double LossAmount = -500.00
...............
int start()
if(LossRisk()<=LossAmount)
return(0);
...............
void LossRisk()
double totalLoss=0;
{
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() == Symbol()) continue;
if (OrderMagicNumber() == someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
totalLoss -= OrderProfit()+OrderCommission()+OrderSwap();
}
return(totalLoss);
}
[/PHP]
Your Knowledge is highly appreciated...
yours truly
AZRUL....Nein, wird es nicht
Wenn Sie nur die Verluste addieren möchten, müssen Sie Folgendes hinzufügen
&& (OrderProfit()+OrderCommission()+OrderSwap()<0)
Die Funktion sieht dann wie folgt aus:
[PHP]void LossRisk()
double totalLoss=0;
{
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() == Symbol()) continue;
if (OrderMagicNumber() == someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL && (OrderProfit()+OrderCommission()+OrderSwap())<0)
totalLoss += OrderProfit()+OrderCommission()+OrderSwap();
}
return(totalLoss);
}
Sehr geehrter Herr MLADEN....
Ich verwende derzeit diese Codes in meinem EA, der auf einem M15-Zeitrahmen läuft...
Es wird eine neue Bestellung nach M15 Zeitrahmen öffnen...
bool AddP()
{int _num=0; int _ot=0;
for (int j=0;j<OrdersTotal();j++)
{if(OrderSelect(j,SELECT_BY_POS)==true && OrderSymbol()==Symbol() && OrderType()<3 && ((OrderMagicNumber()==Magic) || Magic==0))
{
_num++;if(OrderOpenTime()>_ot) _ot=OrderOpenTime();
}
}
if(_num==0) return(true);
if(_num>0 && ((Time[0]-_ot))>0)
return(true);
else return(false);
}
Könnten Sie diesen Code so abändern, dass er alle 5 Minuten nach der vorherigen Order eine neue Order eröffnet....
obwohl ich einen M15-Zeitrahmen verwende....
ICH HOFFE, SIE SIND NICHT BELEIDIGT, DASS ICH SO VIELE FRAGEN SCHICKE....
Mit freundlichen Grüßen
AZRUL...
Nein, wird es nicht
Wenn Sie nur die Verluste addieren wollen, müssen Sie Folgendes hinzufügen
&& (OrderProfit()+OrderCommission()+OrderSwap()<0)
Die Funktion sieht dann wie folgt aus:
double totalLoss=0;
{
for (int i =OrdersHistoryTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() == Symbol()) continue;
if (OrderMagicNumber() == someMagicNumber) continue;
if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)
if (OrderType()==OP_BUY || OrderType()==OP_SELL && (OrderProfit()+OrderCommission()+OrderSwap())<0)
totalLoss += OrderProfit()+OrderCommission()+OrderSwap();
}
return(totalLoss);
}
Sehr geehrter Herr MLADEN,
Sie wissen wirklich, wie man die Dinge hier erledigt....
Ich freue mich SEHR, eine Antwort von Ihnen zu erhalten SIR....
PM me if there is anything that I could do in return... except for codings....
Danke
Mit freundlichen Grüßen
AZRUL...