Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 05.02.15
Nordlicht Nordlicht ist offline
Mitglied
 
Registriert seit: Jan 2015
Ort: Norddeutschland
Beiträge: 42
Nordlicht befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für Deine Mühe Traderdoc, ehrlich!

Funktioniert aber nicht. Habe da bestimmt im Code einen Bock. So viel gelesen, aber immer noch am Anfang.

Habe den ganzen Code mal reingestellt. Ausgangsbasis ist von MindfulFX.

Habe da aber schon ganz schön rum gefurcht.

PHP-Code:
//+------------------------------------------------------------------+
//|                                                   Dirk Rohmann   |
//|                                                   copyright 2015 |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Dirk Rohmann"
#property link      ""

//Globale Externe Variablen
extern int  MA_lang 17;
extern int  MA_kurz 1;
extern int  MA_Mittel 26;
extern double HandelsLots 0.01,SL_prozent 0.25TP_prozent 0.50;
extern int MagicNummer 12345;
extern int LongOrder,ShortOrder;



//Globale Variablen
datetime PeriodenStartZeit;
bool NeuePeriodeBegonnen,LongSignal,ShortSignal;

 

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----



//----
   
return(0);

  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//---- 

/////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------Überprüfen ob neuer Periodenbeginn vorliegt-----------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////

      
if(PeriodenStartZeit != Time[0])
         {
            
NeuePeriodeBegonnen true;
            
PeriodenStartZeit Time[0];
         }
      else 
NeuePeriodeBegonnen false;
      
      
////////////////////////////////////////////////////////////////////////////////////////////////      
//-------------------------------------Marktdaten ermitteln-----------------------------------//
////////////////////////////////////////////////////////////////////////////////////////////////

      
double MAlang iMA(NULL,0,MA_lang,0,MODE_SMA,PRICE_CLOSE,1);
      
double MAlangVorperiode iMA(NULL,0,MA_lang,0,MODE_SMA,PRICE_CLOSE,2);
      
double MAkurz iMA(NULL,0,MA_kurz,0,MODE_SMA,PRICE_CLOSE,1);
      
double MAkurzVorperiode iMA(NULL,0,MA_kurz,0,MODE_SMA,PRICE_CLOSE,2);
      
double MAmittel iMA(NULL,0,MA_Mittel,0,MODE_SMA,PRICE_CLOSE,1);
      
double MAmittelVorperiode iMA(NULL,0,MA_Mittel,0,MODE_SMA,PRICE_CLOSE,2);    
      
double StochSchliessenLongK iStochastic(NULL,0833MODE_SMA0MODE_MAIN,1);
      
double StochSchliessenLongD iStochastic(NULL,0833MODE_SMA0MODE_SIGNAL,1);
      
double StochSchliessenShortK iStochastic(NULL,0833MODE_SMA0MODE_MAIN,1);
      
double StochSchliessenShortD iStochastic(NULL,0833MODE_SMA0MODE_SIGNAL,1);

      

      
/////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------Handelssignale ermitteln---------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////

      
if(NeuePeriodeBegonnen == true)
         {

            
//Buy Signal
            
if(MAkurz>MAlang && MAkurzVorperiode<=MAlangVorperiode)
               {
                  
LongSignal true;
               }
            else 
LongSignal =false;
            
            
            
//Sell Signal
            
if(MAkurz<MAlang && MAkurzVorperiode>=MAlangVorperiode)
               {
                  
ShortSignal true;
               }
            else 
ShortSignal false;
         }
      else
         {
            
LongSignal =false;
            
ShortSignal false;
         }
      

/////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------Long Signale umsetzen-----------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////


      
if(LongSignal == true)
         {
            
//Evtl. Short Order schließen
            
if(ShortOrder>0)
               {
                  if(
OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
                     {
                        
bool ShortOrderGeclosed OrderClose(ShortOrder,OrderLots(),Ask,10,Blue);
                        if (
ShortOrderGeclosed==trueShortOrder=0;
                     }
               }
            
//Long Order eröffnen
            
while(LongOrder<=0)
               {
                  
LongOrder OrderSend(Symbol(),OP_BUY,HandelsLots,Ask,10,0,0,"MAXing LONG",MagicNummer,0,Green);
               }
         }
         
         


/////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------Short Signale umsetzen-----------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////


      
if(ShortSignal == true)
         {
            
//Evtl. Long Order schließen
            
if(LongOrder>0)
               {
                  if(
OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
                     {
                        
bool LongOrderGeclosed OrderClose(LongOrder,OrderLots(),Bid,10,Blue);
                        if (
LongOrderGeclosed==trueLongOrder=0;
                     }
               }
            
//Short Order eröffnen
            
while(ShortOrder<=0)
               {
                  
ShortOrder OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,10,0,0,"MAXing SHORT",MagicNummer,0,Red);
               }
         }
              
//////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------Stopp Loss nach MA-------------------------------------//
//////////////////////////////////////////////////////////////////////////////////////////////////


      
//////////////////////////////////////////////////////////////////////////////////////////////////
//--------------------------------------Stopp Loss nach Pips------------------------------------//
//////////////////////////////////////////////////////////////////////////////////////////////////
      
      //SL Long Deals Setzen
      
if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
         {
            if(
OrderCloseTime()==&& OrderStopLoss()==0)
               {
                  
double StoppLossNormalizeDouble(OrderOpenPrice()/(1+(SL_prozent/100)),Digits);
                  
bool OrderAngepasst OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
               }
         }
      
//SL Short Deals Setzen
      
if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
         {
            if(
OrderCloseTime()==&& OrderStopLoss()==0)
               {
                  
StoppLossNormalizeDouble(OrderOpenPrice()*(1+(SL_prozent/100)),Digits);
                  
OrderAngepasst OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
               }
         }

//////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------Take Profit nach Stochastic setzen-----------------------------//
//////////////////////////////////////////////////////////////////////////////////////////////////


      //TakeProfit Long - Stoch
      
         
if((iStochastic(NULL,0833MODE_SMA0MODE_SIGNAL1) && iStochastic(NULL,0,8,3,3MODE_SMA0MODE_SIGNAL1) > 80))
        
//if((iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,0)>=80) > (iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,1)))//iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_LOW,0))return(0);
            
{   
               if(
OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
               {
                  if(
OrderCloseTime()==&& OrderStopLoss()==0)
         
                   {
                        
LongOrderGeclosed OrderClose(LongOrder,OrderLots(),Ask,10,Blue);
                        if (
LongOrderGeclosed==trueLongOrder=0;
                     }
             }
         }


         if((
iStochastic(NULL,0833MODE_SMA0MODE_SIGNAL1) && iStochastic(NULL,0,8,3,3MODE_SMA0MODE_SIGNAL1) < 20))
        
//if((iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,0)>=80) > (iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,1)))//iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_LOW,0))return(0);
            
{   
               if(
OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
               {
                  if(
OrderCloseTime()==&& OrderStopLoss()==0)
         
                   {
                        
ShortOrderGeclosed OrderClose(ShortOrder,OrderLots(),Ask,10,Blue);
                        if (
ShortOrderGeclosed==trueShortOrder=0;
                     }
             }
         }


      
//TakeProfit Long - Stoch
      
         //if(MAkurz>(iStochastic(NULL,0, 8, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 1)>80))
        //if((iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,0)>=80) > (iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,1)))//iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_LOW,0))return(0);
//            {   
  //             if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
    //           {
      //            if(OrderCloseTime()==0 && OrderStopLoss()==0)
         
        //           {
          //              LongOrderGeclosed = OrderClose(LongOrder,OrderLots(),Ask,10,Blue);
            //            if (LongOrderGeclosed==true) LongOrder=0;
              //       }
             //}
         //}          
        
      //TP Short Deals Setzen
      
//      if(MAkurz<(iStochastic(NULL, Period(), 8, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 1)<20))
      //  if(iStochastic(NULL,0,8,3,3,MODE_SMA,0,MODE_LOW,1)<=10)//iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_LOW,0))return(0);
  //       {
    //        if(ShortOrder>0)
      //         {
        //          if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
          //           {
            //            ShortOrderGeclosed = OrderClose(ShortOrder,OrderLots(),Bid,10,Blue);
              //          if (ShortOrderGeclosed==true) ShortOrder=0;
                //     }
               //}
         //}          
 

//////////////////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------Aufträge rücksetzen----------------------------------------//
//////////////////////////////////////////////////////////////////////////////////////////////////

      
      //Ticketnummern nach Closing auf 0 zurücksetzen
      
      
if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
         {
            if(
OrderTicket()>&& OrderCloseTime()>0LongOrder=0;
         }
      if(
OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
         {
            if(
OrderTicket()>&& OrderCloseTime()>0ShortOrder=0;
         }     
      

//----
   
return(0);
  }
//+------------------------------------------------------------------+