Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Bitte um Hilfe.... (http://www.expert-advisor.com/forum/showthread.php?t=2215)

klaus 17.05.12 16:53

Bitte um Hilfe....
 
Hallo, bin neu im Forum-und noch "neuer" im erstellen von EA`s.

Mache im Moment meine ersten Gehversuche -bekomme aber das nachfolgende nicht compiliert(nicht erschrecken)
warscheinlich fast alles falsch??

Forex Expert Advisor Generator version 2.03 EA
//--------------------------------------------------------

#property copyright "Copyright © 2010, Forex EA Generator v2.03"
#property link "http://www.forexgenerator.com/"
#include <stdlib.mqh>

// exported variables
extern double BuyLots15 = 0.1;
extern int BuyStoploss15 = 20;
extern int BuyTakeprofit15 = 30;
extern double BuyLots12 = 0.1;
extern int BuyStoploss12 = 20;
extern int BuyTakeprofit12 = 30;
extern double SellLots16 = 0.1;
extern int SellStoploss16 = 20;
extern int SellTakeprofit16 = 30;


// local variables
double PipValue=1; // this variable is here to support 5-digit brokers
bool Terminated = false;
int Count13 = 0;


int init()
{

Comment(""); // clear the chart
}

// Expert start
int start()
{
if (Bars < 10)
{
Comment("Not enough bars");
return (0);
}
if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}

OnEveryTick14();

}

void OnEveryTick14()
{
if (true) PipValue = 10;
TechnicalAnalysis5();
PrintInfoToChart13();

}

void TechnicalAnalysis5()
{
if (iSAR(NULL, PERIOD_M15,0.03,0.2,0) > Open[0])
{
TechnicalAnalysis2x4();
IfOrderDoesNotExist9();

}
}

void TechnicalAnalysis2x4()
{
if ((iRVI(NULL, NULL,3,MODE_SIGNAL,0) > Open[0]) && (iCustom(NULL, PERIOD_M15, "Real_Woodie_CCI",3,2,27,26,10000,7,1,3,4,4,0) > Open[0]))
{
IfOrderDoesNotExist11();

}
}

void IfOrderDoesNotExist11()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 1)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
BuyOrder15();

}
}

void BuyOrder15()
{

int ticket = OrderSend(Symbol(), OP_BUY, BuyLots15, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);
if (ticket > -1)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), Ask - BuyStoploss15*PipValue*Point, Ask + BuyTakeprofit15*PipValue*Point, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));

}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}

void IfOrderDoesNotExist9()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 1)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
BuyOrder12();

}
}

void BuyOrder12()
{

int ticket = OrderSend(Symbol(), OP_BUY, BuyLots12, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);
if (ticket > -1)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), Ask - BuyStoploss12*PipValue*Point, Ask + BuyTakeprofit12*PipValue*Point, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
SellOrder16();

}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}

void SellOrder16()
{

int ticket = OrderSend(Symbol(), OP_SELL, SellLots16, Bid, 4, 0, 0, "My Expert", 1, 0, Red);
if (ticket > -1)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), Bid + SellStoploss16*PipValue*Point, Bid - SellTakeprofit16*PipValue*Point, 0, Red);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));

}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}

void PrintInfoToChart13()
{
string temp = "My EA\nExecuted : " + Count13 + "\n"
+ "Spread: " + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD)/PipValue, 2)+ "\n"
+ "------------------------------------------------\n"
+ "ACCOUNT INFORMATION:\n"
+ "\n"
+ "Account Name: " + AccountName()+ "\n"
+ "Account Leverage: " + DoubleToStr(AccountLeverage(), 0)+ "\n"
+ "Account Balance: " + DoubleToStr(AccountBalance(), 2)+ "\n"
+ "Account Equity: " + DoubleToStr(AccountEquity(), 2)+ "\n"
+ "Free Margin: " + DoubleToStr(AccountFreeMargin(), 2)+ "\n"
+ "Used Margin: " + DoubleToStr(AccountMargin(), 2)+ "\n"
+ "------------------------------------------------\n";
Comment(temp);
Count13++;

}



int deinit()
{

}

:confused:

Odin 17.05.12 18:09

Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Klaus geht einwandfrei. Als Anhang deine Dateien:)

klaus 17.05.12 18:57

Vielen Dank
 
Hi Odin,
wie hast Du die Datei gemacht-habs nicht geschafft.
Habe in letzter Zeit den Fapturbo getestet -leider mit wenig Erfolg.
Versuche jetzt selber was zu basteln.
Welcher EA bringt bei Dir am meisten-bzw.was kannste empfehlen??

Odin 17.05.12 19:43

Hallo Klaus,

ich habe einfach den Programmtext kopiert, dann in den MT4 Editor eingefügt und kompiliert.
Das mit dem empfehlen ist so eine Sache, ich denke das muss jeder für sich entscheiden. Lese Dir am besten hier im Forum die Beiträge durch, da wirst Du bestimmt eine Menge Tipps finden die Dir weiterhelfen.

Odin

idefix2 06.06.12 22:24

Zu Deinem Programm ein Hinweis:

if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}

Das ist keine gute Idee, weil das wird BEI JEDEM TICK immer wieder aufgerufen, sobald terminated einmal true geworden ist. Der EA wird ja nicht beendet, sondern bei jedem Tick neu gestartet. Die Comment-Funktion würde ich dort aufrufen, wo der Befehl
terminated=true;
steht.

oscar_888 05.08.12 08:07

EA abaendern
 
Hallo Klaus,

Du bist ja ein perfekter EA Programmierer.
Ich bin Laie wuerde mich mal aber gerne mit dem Programmieren eines EA beschaeftigen. Wie oder wo faengt man denn da an ?
Ich bin bis jetz immer auf die nase gefallen bei gekauften EA' s und was auch immer.
Jetzt moechte ich das aendern und habe ein Bitte. ich habe einen kleine EA
( als exe, bekomme den aber eventuell auch mit Quellcode),
dieser EA schliesst alle offenen Trades , wenn ich ihn auf den Chart ziehe.
Ich moechte diesen EA abander, dass er mir einen offenen Trade nichts schliesst sondern einen Gegentrade aufmacht mit fixer Lotgroesse (1.1 Minilot ) , fixem SL ( 7 Pips ) und fixem TP ( 5 Pips ). Geht sowas und haettest Du eventuell Interesse sowas zu machen ? Oder kennst Du Jemand, der das machen koennte ???


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:16 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum