"Hedging" im Devisenhandel - warum? - Seite 7

 
//+------------------------------------------------------------------+
//|                                          Sonic the hedge hog.mq4 |
//|      Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//|             The code should be used for educational purpose only.|
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

datetime time;
int TrailingStop=100;
double Lots=0.01;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   time=iTime(_Symbol,PERIOD_D1,0);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   exit();
   enter();
  }
//+------------------------------------------------------------------+
//| enter
//+------------------------------------------------------------------+
void enter()
  {
//--- new bar ?
   if(time!=iTime(_Symbol,PERIOD_D1,0))
     {
      int ticket_buy=-1;
        {
         while(ticket_buy<0)
           {
            ticket_buy=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,NULL,NormalizeDouble(Bid+100*Point,Digits),"Sonic",1234,0,clrGreen);
           }
        }
      int ticket_sell=-1;
        {
         while(ticket_sell<0)
           {
            ticket_sell=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,NULL,NormalizeDouble(Ask-100*Point,Digits),"Sonic",1234,0,clrRed);
           }
        }
      if(ticket_buy>0 && ticket_sell>0)
        {
         time=iTime(_Symbol,PERIOD_D1,0);
        }
     }
  }
//+------------------------------------------------------------------+
//| exit
//+------------------------------------------------------------------+
void exit()
  {
//--- it is important to enter the market correctly, but it is more important to exit it correctly...   
   for(int cnt=OrdersTotal(); cnt>=0; cnt--)
     {
      if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(TimeDay(OrderOpenTime())!=TimeDay(time))
           {
            bool close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,clrBlue);
              {
               if(close==0)
                 {
                  Print("OrderCloseError"+IntegerToString(OrderTicket()));
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

Ziemlich einfach.

Ich habe es im letzten Jahr durchgeführt.

Ich erwarte also die gleichen Ergebnisse, oder wie manche sagen, sogar bessere von der anderen Technik.

Ich werde kein Problem damit haben, zu akzeptieren, was dabei herauskommt, und ich versuche nicht, ungültige Wahrheiten durchzusetzen.

Ich versuche nur, das Forum lebendig zu halten, einen kleinen Wettbewerb anstelle der ganzen "Ich brauche, ich will"-Themen.

 
Marco vd Heijden:

Ziemlich einfach.

Ich habe es im letzten Jahr durchgeführt.

Ich erwarte also die gleichen Ergebnisse, oder wie manche sagen, sogar bessere von der anderen Technik.

Ich werde kein Problem damit haben, zu akzeptieren, was dabei herauskommt, und ich versuche nicht, ungültige Wahrheiten durchzusetzen.

Ich versuche nur, das Forum lebendig zu halten, ein wenig Wettbewerb anstelle all der "Ich brauche, ich will"-Themen.

Hoher Marco,

Hier ist der geänderte Code, der ohne Hedging funktioniert.


	          
 

Entschuldigung,

kleiner Fehler.

Bin bald zurück.

 

Hier ist der Code für keine Absicherung

//+------------------------------------------------------------------+
//|                                          Sonic the hedge hog.mq4 |
//|      Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//|             The code should be used for educational purpose only.|
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

datetime time;
//int TrailingStop=100;
double Lots=0.01;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   time=iTime(_Symbol,PERIOD_D1,0);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   exit();
   enter();
  }
//+------------------------------------------------------------------+
//| enter
//+------------------------------------------------------------------+
void enter()
  {
   static double BuyAt=0,SellAt=0,BuyTP=0,SellTP=0;

//--- new bar ?
   if(time!=iTime(_Symbol,PERIOD_D1,0))
     {
      SellAt=NormalizeDouble(Bid+100*Point,Digits);
      SellTP=NormalizeDouble(Ask-100*Point,Digits);
      BuyAt=NormalizeDouble(Ask-100*Point,Digits);
      BuyTP=NormalizeDouble(Bid+100*Point,Digits);
      time=iTime(_Symbol,PERIOD_D1,0);
     }

   if(SellAt>0 && Bid>=SellAt)
     {
      int ticket_sell=-1;
      ticket_sell=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,NULL,SellTP,"Sonic",1234,0,clrRed);
      if(ticket_sell>0)
        {
         BuyAt=0;
         SellAt=0;
        }
     }

   if(BuyAt>0 && Ask<=BuyAt)
     {
      int ticket_buy=-1;
      ticket_buy=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,NULL,BuyTP,"Sonic",1234,0,clrGreen);
      if(ticket_buy>0)
        {
         BuyAt=0;
         SellAt=0;
        }
     }
  }
//+------------------------------------------------------------------+
//| exit
//+------------------------------------------------------------------+
void exit()
  {
//--- it is important to enter the market correctly, but it is more important to exit it correctly...   
   for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
     {
      if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(TimeDay(OrderOpenTime())!=TimeDay(time))
           {
            bool close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,clrBlue);
              {
               if(close==false)
                 {
                  Print("OrderCloseError"+IntegerToString(OrderTicket()));
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
 

Okay, danke, ich habe es kompiliert und hier ist das Ergebnis:


 
Marco vd Heijden:

Okay, danke, ich habe es zusammengestellt und hier ist das Ergebnis:


Bitte versuchen Sie es mit jedem Tick, offene Preise sind nicht gut für das Testen dieser Art von Handel, bei dem Trades auf bestimmten Ebenen eingegeben werden.

Und, natürlich, testen Sie es gegen Ihre über die gleichen Daten.

 
Okay, sie sehen beide sehr ähnlich aus, wenn sie jeden Tick laufen.
 
Marco vd Heijden:
Okay, sie sehen beide sehr ähnlich aus, wenn sie jeden Tick ausgeführt werden.


Also ... ohne die in diesem Thema erwähnte so genannte Absicherungstechnik anzuwenden, haben die angesehenen Programmierer in unserem Forum gezeigt, dass die von Marco vorgeschlagene Strategie auch auf eine andere Weise mit einigen zusätzlichen finanziellen Vorteilen umgesetzt werden kann.

In der Tat kann "jede willkürlich ausgewählte" Strategie so dargestellt werden ... und dies beweist allgemein die Aussage von Keith in seinem ersten Beitrag "es ist nicht nur meine Meinung, dass "Hedging" im Forex unproduktiv und sinnlos ist, es ist eine Tatsache."


Haben Sie das bemerkt?

Dieses Ergebnis stimmt mit dem Occam'schen Rasiermesser überein, das besagt, dass eine Mehrzahl nicht ohne Notwendigkeit aufgestellt werden sollte" oder dass Entitäten nicht über die Notwendigkeit hinaus multipliziert werden sollten".

Also, sei einfach für die Perfektion ... oder eben einfach, um sich zusätzliche Kosten und unnötige Risiken zu ersparen, die in diesem Fall keinen wirklichen Nutzen haben.


Viel Spaß beim Entwerfen von Strategien )

 

Nun, die Show ist erst vorbei, wenn die dicke Dame singt.

Bleiben Sie dran.

 
Marco vd Heijden:
Okay, beide sehen sich sehr ähnlich, wenn sie jeden Tick ausgeführt werden.

Haben Sie nicht gesehen, dass meine Version einen leichten Anstieg des Gewinns brachte?