Einzelnen Beitrag anzeigen
  #13 (permalink)  
Alt 23.02.12
Mast83 Mast83 ist offline
Elite Mitglied
 
Registriert seit: Aug 2011
Ort: NRW
Beiträge: 764
Mast83 befindet sich auf einem aufstrebenden Ast
Mast83 eine Nachricht über ICQ schicken Mast83 eine Nachricht über Skype™ schicken
Standard Mr Sandman bring me your dream :)

Erst mal vielen Dank für die Konzept Idee Ich bin derzeit folgender Maßen gekommen und habe da Problem, dass jetzt nur openbuyorders generiert werden, aber keine opensell...warum?

Code:
//+------------------------------------------------------------------+
//| Der Stundentrader.mq4 |
//| Der Marc |
//| Es gibt gar keine Internetseite |
//+------------------------------------------------------------------+
#property copyright "Der Marc"
#property link "Es gibt gar keine Internetseite"

//Wichtige Variablen
extern double Minlot=0.01;
extern int Digits2Round=2;
extern int PercentOfFreeDepo=1;
extern int Slippage=0;
extern int BuyMagicNumber=1;
extern int SellMagicNumber=2;
extern int TradeHour0=0;
extern int TradeHour1=1;
extern int TradeHour2=2;
extern int TradeHour3=3;
extern int TradeHour4=4;
extern int TradeHour5=5;
extern int TradeHour6=6;
extern int TradeHour7=7;
extern int TradeHour8=8;
extern int TradeHour9=9;
extern int TradeHour10=10;
extern int TradeHour11=11;
extern int TradeHour12=12;
extern int TradeHour13=13;
extern int TradeHour14=14;
extern int TradeHour15=15;
extern int TradeHour16=16;
extern int TradeHour17=17;
extern int TradeHour18=18;
extern int TradeHour19=19;
extern int TradeHour20=20;
extern int TradeHour21=21;
extern int TradeHour22=22;
extern int TradeHour23=23;
extern int StopLoss=50;
extern int TakeProfit=100;
extern int MaxTradePerBarLong=1;
extern int MaxTradePerBarShort=1;
datetime Time0;
int TradePerBarLong=1;
int TradePerBarShort=1;
int BarCountLong=-1;
int BarCountShort=-1;

//Globale Variablen
int BuyTicket;
int SellTicket;
double UsePoint;
int UseSlippage;

int openbuy = 0;
int opensell = 0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
UsePoint = PipPoint(Symbol());
UseSlippage = GetSlippage(Symbol(), Slippage);
Time0=Time[0];
return(0);
}


//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double FreeDepo=NormalizeDouble(AccountBalance()-AccountMargin(),Digits2Round);
double Risk=NormalizeDouble((FreeDepo*PercentOfFreeDepo/100),Digits2Round);
double Lot=NormalizeDouble(Risk/(StopLoss/0.0001)*0.1,Digits2Round);

//===================== Lets determine lot size and risk ===================================
if ( Lot<Minlot )
{
 Lot=Minlot;
}
Comment( "\n","Acceptable risk is ",PercentOfFreeDepo, "% = ",Risk," of the free money ",FreeDepo," in lots = ",Lot);


//BuyOrder
if ((TradeHour1==Hour())||(TradeHour2==Hour())||(TradeHour3==Hour())||(TradeHour4==Hour())||(TradeHour5==Hour())||(TradeHour6==Hour())||(TradeHour7==Hour())||(TradeHour8==Hour())||(TradeHour9==Hour())||(TradeHour10==Hour())||(TradeHour11==Hour())||(TradeHour12==Hour())||(TradeHour13==Hour())||(TradeHour14==Hour())||(TradeHour15==Hour())||(TradeHour16==Hour())||(TradeHour17==Hour())||(TradeHour18==Hour())||(TradeHour19==Hour())||(TradeHour20==Hour())||(TradeHour21==Hour())||(TradeHour22==Hour())||(TradeHour23==Hour())||(TradeHour0==Hour()) && openbuy == 0 &&(TradePerBarLong<=MaxTradePerBarLong)) //Signal Buy
if (BarCountLong!=Bars){TradePerBarLong=0;BarCountLong=Bars;}
  {
   if (Time0!=Time[0])
   {
    openbuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage ,Ask - StopLoss * Point,Bid + TakeProfit * Point,"Kompensation buy",BuyMagicNumber,0,Green); 
    if (openbuy < 0) Print("OrderSend OP_BUY failed, error: ", GetLastError() );
        Time0=Time[0];
            if(TradePerBarLong>0)TradePerBarLong++;
   } 
  }
  return(0);
//SellOrder
if ((TradeHour1==Hour())||(TradeHour2==Hour())||(TradeHour3==Hour())||(TradeHour4==Hour())||(TradeHour5==Hour())||(TradeHour6==Hour())||(TradeHour7==Hour())||(TradeHour8==Hour())||(TradeHour9==Hour())||(TradeHour10==Hour())||(TradeHour11==Hour())||(TradeHour12==Hour())||(TradeHour13==Hour())||(TradeHour14==Hour())||(TradeHour15==Hour())||(TradeHour16==Hour())||(TradeHour17==Hour())||(TradeHour18==Hour())||(TradeHour19==Hour())||(TradeHour20==Hour())||(TradeHour21==Hour())||(TradeHour22==Hour())||(TradeHour23==Hour())||(TradeHour0==Hour()) && opensell == 0 &&(TradePerBarShort<=MaxTradePerBarShort)) //Signal Buy
if (BarCountShort!=Bars){TradePerBarShort=0;BarCountShort=Bars;}
  {
   if (Time0!=Time[0])
   {
    opensell=OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,Bid + StopLoss * Point,Ask - TakeProfit * Point,"Kompensation sell",SellMagicNumber,0,Red);
    if (opensell < 0) Print("OrderSend OP_SELL failed, error: ", GetLastError() );
        Time0=Time[0];
            if(TradePerBarShort>0)TradePerBarShort++;
   } 
  }
return(0);
}

//+------------------------------------------------------------------+
//Pip Point Function
double PipPoint (string Currency)
{
int CalcDigits = MarketInfo(Currency, MODE_DIGITS);
if(CalcDigits == 2 || CalcDigits == 3) double CalcPoint = 0.01;
else if(CalcDigits == 4 || CalcDigits == 5) CalcPoint = 0.0001;
return (CalcPoint);
}

//Get Slippage Function
int GetSlippage(string Currency, int SlippagePips)
{
int CalcDigits = MarketInfo(Currency, MODE_DIGITS);
if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;
else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;
return (CalcSlippage);
}
Dick markiert und unterstrichen sind die Passagen, die aktuell dafür Sorge tragen sollten jeweils eine long und short Order zu eröffnen...
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn...