Hilfe bei der Codierung - Seite 290

 
mladen:
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:

double totalProfit=0;

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...

 
12BPRO:
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)

 
mladen:
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:

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)

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...

 
12BPRO:
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...

 
mladen:
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....

 
12BPRO:
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...

 
mladen:
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:

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,

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...

Grund der Beschwerde: