Einzelnen Beitrag anzeigen
  #40 (permalink)  
Alt 19.09.11
JoeDormann JoeDormann ist offline
Gesperrter Benutzer
 
Registriert seit: Sep 2011
Ort: Kassel
Beiträge: 749
JoeDormann befindet sich auf einem aufstrebenden Ast
JoeDormann eine Nachricht über Skype™ schicken
Standard

Hallo,
viele, viele Fehler in Syntax und was dem MA angeht auch. Du kannst kein MA Array benutzen, wenn Du keines erzeugst. Daher hatte ich die beiden benötigten MA-Werte auch über die Methode iMA(...) erzeugt, aber nicht als Array. Wenn Du bastelst, dann bitte nur Stück für Stück. Beim ersten neu auftretenden Fehler, siehst Du wenn Du compilierst, nicht einfach weitermachen, sondern erst den Fehler suchen(Zeile und Fehler wird ja unten angezeigt) und fixen und lernen(Syntax von C lernen).

//+------------------------------------------------------------------+
//| Marcs erster EA.mq4 |
//| Der Marc |
//| Es gibt gar keinen Link dazu |
//+------------------------------------------------------------------+
#property copyright "Der Marc"
#property link "Es gibt gar keinen Link dazu"


extern double dLots=0.02;
extern int iStopLoss=250;
extern int iTakeProfit=250;
extern int iSlippage=30;
extern int iMaxTrades=1;
extern int iMagicNumber=112233;

int iTradeSignal=0;
int iOpenBuySignal=10;
int iCloseBuySignal=-10;
int iOpenSellSignal=20;
int iCloseSellSignal=-20;
int iNoSignal=-1;


double dMovingAvg1=0;

int iTotalTrades;
int iOrderOpenStatus;
int iErrorNumber;

string strErrorMessage;

//-------------------------------------------------------------------------------------------
int start(){
int peri=Period();
if(peri==PERIOD_H1){
double dMa.1=iMA(Symbol(),0,7,0,MODE_SMA,PRICE_CLOSE,1);
double dMa.2=iMA(Symbol(),0,7,0,MODE_SMA,PRICE_CLOSE,2);
bool AusbruchLong = ( Low[1] > dMa.1 && Open[1] < Close[1] && dMa.1 > dMa.2 );
bool AusbruchShort = ( High[1] < dMa.1 && Close[1] < Open[1] && dMa.1 < dMa.2 );


// Buy-Order ausführen
iTotalTrades=OrdersTotal();
if ((iTradeSignal == iOpenBuySignal) && (iTotalTrades < iMaxTrades)){
double dBSL=Ask-(iStopLoss*Point);
double dBTP=Ask+(iTakeProfit*Point);
iOrderOpenStatus=OrderSend (Symbol(), OP_BUYSTOP,dLots, High[1], iSlippage, dBSL, dBTP, "Marcs erster EA",iMagicNumber, TimeCurrent()+7200,Green);
if (iOrderOpenStatus<0){
iErrorNumber=GetLastError();
Print ("Order fehlgeschlagen!: ", iErrorNumber);
return;
}
}

// Sell-Order ausführen
iTotalTrades=OrdersTotal();
if ((iTradeSignal == iOpenSellSignal) && (iTotalTrades < iMaxTrades)){
double dSSL=Bid+(iStopLoss*Point);
double dSTP=Bid-(iTakeProfit*Point);
iOrderOpenStatus=OrderSend (Symbol(), OP_SELLSTOP,dLots, Low[1], iSlippage, dSSL, dSTP, "Marcs erster EA",iMagicNumber,TimeCurrent()+7200,Red);
if (iOrderOpenStatus<0){
iErrorNumber=GetLastError();
Print ("Order fehlgeschlagen!: ", iErrorNumber);
return;
}
}
}
return(0);
}
//+------------------------------------------------------------------+

Ob der Code so sinnvoll ist habe ich nicht verifiziert, aber offensichtliche Syntax-Fehler sind raus und IMA gefixt.

Gruß Joe
PS: Ich hoffe nicht das Du am saufen bist. Vielleicht mal den Spruch ändern?