Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 06.08.17
romario romario ist offline
Neues Mitglied
 
Registriert seit: Apr 2017
Beiträge: 7
romario befindet sich auf einem aufstrebenden Ast
Standard Berücksichtigung der/des Kommission/Swap

Hallo zusammen, ich habe einen eigenen EA und versuche beim Schliessen der Positionen Kommission und Swap zu berücksichigen.
Nun habe ich 2 verschiedene Möglichkeiten mit ebenso verschiedenen Resultaten. Die Ergebnisse unterscheiden sich interessanterweise nicht gross im Endresultat, jedoch habe ich bei der Anzahl gewonnener Positionen (Sell&Buy) einmal ~83% und mit der anderen "Version" ~93%... Vllt. kann mir jemand dabei helfen zu bestimmen welche der 2 Möglichkeiten denn nun die Richtige ist, bzw. ob es da sonst noch Fehler drin hat:

Code:
   for (pos = OrdersTotal()-1; pos >= 0; pos--) {
      if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) {
        if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {

        cOrderProfit=OrderProfit()+OrderSwap()+OrderCommission();

//----

if (UseCloseIndicator == 1) {

        if(OrderType()==OP_BUY) {

          if(cOrderProfit > 0 && PriceBid >= channel_main) {
          RefreshRates();
          if(OrderClose(OrderTicket(), OrderLots(), PriceBid, 3, Blue)==true)
          pos--;
        }
    }

und:

Code:
   for (pos = OrdersTotal()-1; pos >= 0; pos--) {
      if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) {
        if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {

//----

if (UseCloseIndicator == 1) {

        if(OrderType()==OP_BUY) {

          if(Profit() > 0 && PriceBid >= channel_main) {
          RefreshRates();
          if(OrderClose(OrderTicket(), OrderLots(), PriceBid, 3, Blue)==true)
          pos--;
        }
    }

//----

bool Profit()
{
   double TotalProfit = 0;
   for(int iPos = OrdersTotal()-1; iPos >= 0; iPos--)
   if(OrderSelect(iPos, SELECT_BY_POS)
   && OrderMagicNumber() == Magic
   && OrderSymbol()      == Symbol())
   TotalProfit += OrderProfit()+OrderSwap()+OrderCommission();
   return (TotalProfit);
}