25.03.17
|
Elite Mitglied
|
|
Registriert seit: Apr 2011
Beiträge: 2.733
|
|
Code:
extern string First_WP = "EURUSD";
extern string Second_WP = "GBPUSD";
extern double Profit = 100;
extern double Loss = 50;
void OnTick() {
int First_TN = 0, Second_TN = 0;
int First_Type, Second_Type;
double profit = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderMagicNumber() == MagicNumber) { //kann ggf. weggelassen werden
if(OrderSymbol() == First_WP) {
First_TN = OrderTicket();
First_Type = OrderType();
profit += OrderProfit(); //ggf. noch OrderCommission() und OrderSwap() einbeziehen
}
if(OrderSymbol() == Second_WP) {
Second_TN = OrderTicket();
Second_Type = OrderType();
profit += OrderProfit(); //ggf. noch OrderCommission() und OrderSwap() einbeziehen
}
}
}
}
if (profit >= Profit || profit <= -Loss) {
bool result = false;
bool first_result = false, second_result = false;
double price;
while (!result) {
if (First_TN > 0 && OrderSelect(First_TN, SELECT_BY_TICKET)) {
RefreshRates();
while(IsTradeContextBusy()) Sleep(100);
if (First_Type == OP_BUY) price = MarketInfo(First_WP, MODE_BID);
else MarketInfo(First_WP, MODE_ASK);
first_result = OrderClose(First_TN, OrderLots(), price, 5, Red);
if (first_result) First_TN = 0;
}
if (Second_TN > 0 && OrderSelect(Second_TN, SELECT_BY_TICKET)) {
RefreshRates();
while(IsTradeContextBusy()) Sleep(100);
if (Second_Type == OP_BUY) price = MarketInfo(Second_WP, MODE_BID);
else MarketInfo(Second_WP, MODE_ASK);
second_result = OrderClose(Second_TN, OrderLots(), price, 5, Red);
if (second_result) Second_TN = 0;
}
if (first_result && second_result) break;
}
}
}
Viel Erfolg!
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
|