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)
-   -   Sell_Buy Scalper_agr (http://www.expert-advisor.com/forum/showthread.php?t=1563)

bmurat 29.08.11 17:54

Sell_Buy Scalper_agr
 
Hallo Leute,

ich verzweifle langsam :confused:, ich habe ein Demokonto mit 10 000,- Euro eröffnet und diesen EA laufenlassen, funktioniert soweit ganz gut.


aber mit einem 2.000,- Euro Konto eröffnet er mir nicht ein Trade. woran liegt es, kann mir hier jemand kurz helfen ???? wäre echt klasse


hier der Code:


//Working as aggressor scalper, example - open buy signal, next is sell signal.
//More info : info@forexsoftwareshop.com
//http://www.forexsoftwareshop.com

extern double TakeProfit = 25.0;
extern double TakeProfit2 = 25.0;
extern double TrailingStop = 20.0;
extern double TrailingStop2 = 20.0;
extern double Lots = 1.0;

color Filter10 = 68;
color Filter12 = 9;
color Filter6 = 80;
color Filter4 = 35;
color Filter2 = 47;
color Filter9 = 46;
string Name_EA = "sca";
int Slippage = 30;
bool UseSound = FALSE;
string EAsound = "alert.wav";

void deinit() {
Comment("");
}

int start() {
if (Bars < 100) {
Print("");
return (0);
}
if (TakeProfit < 10.0) {
Print("");
return (0);
}
if (TakeProfit2 < 10.0) {
Print("");
return (0);
}
double l_iclose_0 = iClose(NULL, PERIOD_M5, 0);
double l_ima_8 = iMA(NULL, PERIOD_M5, 7, 0, MODE_SMA, PRICE_OPEN, 0);
double l_iclose_16 = iClose(NULL, PERIOD_M5, 0);
double l_ima_24 = iMA(NULL, PERIOD_M5, 6, 0, MODE_SMA, PRICE_OPEN, 0);
if (AccountFreeMargin() < 1000.0 * Lots) {
Print(" Free Margin = ", AccountFreeMargin());
return (0);
}
if (!ExistPositions()) {
if (l_iclose_0 < l_ima_8) {
OpenBuy();
return (0);
}
if (l_iclose_16 > l_ima_24) {
OpenSell();
return (0);
}
}
TrailingPositionsBuy(TrailingStop);
TrailingPositionsSell(TrailingStop2);
return (0);
}

bool ExistPositions() {
for (int l_pos_0 = 0; l_pos_0 < OrdersTotal(); l_pos_0++) {
if (OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES))
if (OrderSymbol() == Symbol()) return (TRUE);
}
return (FALSE);
}

void TrailingPositionsBuy(int ai_0) {
for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY) {
if (Bid - OrderOpenPrice() > ai_0 * Point)
if (OrderStopLoss() < Bid - ai_0 * Point) ModifyStopLoss(Bid - ai_0 * Point);
}
}
}
}
}

void TrailingPositionsSell(int ai_0) {
for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_SELL) {
if (OrderOpenPrice() - Ask > ai_0 * Point)
if (OrderStopLoss() > Ask + ai_0 * Point || OrderStopLoss() == 0.0) ModifyStopLoss(Ask + ai_0 * Point);
}
}
}
}
}

void ModifyStopLoss(double a_price_0) {
int l_bool_8 = OrderModify(OrderTicket(), OrderOpenPrice(), a_price_0, OrderTakeProfit(), 0, CLR_NONE);
if (l_bool_8 && UseSound) PlaySound(EAsound);
}

void OpenBuy() {
double l_lots_0 = GetSizeLot();
double l_price_8 = 0;
double l_price_16 = GetTakeProfitBuy();
string l_comment_24 = GetCommentForOrder();
OrderSend(Symbol(), OP_BUY, l_lots_0, Ask, Slippage, l_price_8, l_price_16, l_comment_24, 0, 0, Filter10);
if (UseSound) PlaySound(EAsound);
}

void OpenSell() {
double l_lots_0 = GetSizeLot();
double l_price_8 = 0;
double l_price_16 = GetTakeProfitSell();
string l_comment_24 = GetCommentForOrder();
OrderSend(Symbol(), OP_SELL, l_lots_0, Bid, Slippage, l_price_8, l_price_16, l_comment_24, 0, 0, Filter6);
if (UseSound) PlaySound(EAsound);
}

string GetCommentForOrder() {
return (Name_EA);
}

double GetSizeLot() {
return (Lots);
}

double GetTakeProfitBuy() {
return (Ask + TakeProfit * Point);
}

double GetTakeProfitSell() {
return (Bid - TakeProfit2 * Point);
}

Mast83 30.08.11 09:27

Du hast oben die definition : extern double Lots = 1.0;
Das bedeutet, dass ein Lot á 100.000 investiert werden...
mach daraus mal 0.1 oder 0.01...das bedeutet
0.1 wären 10.000
0.01 wären 1.000

das sollte den Fehler hoffentlich beheben.

darüber hinaus...welchen hebel hast du bei deinem echten Konto ?

Mast83 30.08.11 09:28

und eine Frage noch...in welchem Zeitfenster nutzt du den EA? 1 Stunde 5 Minuten oder?

bmurat 30.08.11 13:29

S
 
Also mein Zeitfenster ist beim 10.000 konto = M15

wenn ich die lots ändern tue auf 0.1 dann merke ich das er gar kein Position öffnet, woran kann das liegen ??


wo kann ich den Hebel den SEHEN ??

bmurat 30.08.11 14:03

s
 
Mein Konto ist bei ALPARI einmal und der zweite ist bei FXCM !!
zwecks dem Hebel ...

Mast83 30.08.11 14:49

Den Hebel legst Du mit Deinem Broker im vornherein fest...Beispielsweise 1:100 oder 1:200 etc.
Woran es noch liegen kann, kann ich so spontan nicht sagen...
Bekommst Du einen Fehlerhinweis sofern du den EA in das Chartfenster lädst? Untem im Bildschirm müsste stehen ob der geladen wird oder nicht

bmurat 30.08.11 14:53

Der ist geladen, der Smile ist aoch on !
was denkst du, ist 0,25 gut als lot ??
und welchen zeitfenster nimmst du M15 oder M5

Mast83 30.08.11 16:17

ich habe das noch gar nicht probiert...25.000 bewegst du im markt...wenn du mir jetzt sagen kannst welcehn hebel du hast...bei einem hebel von 100 würdest du 250€ als Margin hinterlegen...das wären 12,5% des Depots...
Prinzipiell würde ich persönlich eher auf 0.1 bis 0.2 Lots gehen, aber das hängt davobn ab wie zuverlässig das Programm ist...nur meine Meinung...wie gesagt, ich kenne das Programm nicht wirklich...also noch nicht und ich spute mich davor zu sagen was du machen sollst und was nicht.
Bin persönlich gesehen eher ein konservativer was das angeht...bei einem Hebel von 50 den ich bei meinem broker habe müsste ich bei 0.25 Lots 500€ hinterlegen...

rholze 22.09.11 08:37

Hallo bmurat,

ich weiss zwar nicht wie weit Du schon mit dem EA gekommen bist, aber hier vielleicht noch ein paar Infos für Dich:

1.) Benutze doch einfach die mit MoneyManagement erweiterete Version des Scalpers Sell_Buy Scalper_agr - MQL4 Code Base. Der funktioniert, zumindest im Backtest, auch mit einem 1000€ Konto. Das MM setzt die Lotsize autom. runter. (Achtung: Korrekturhinweis beachten und das fehlende ";" noch einfügen)

2.) Der EA benötigt keinen Timeframe. Er wird bei jedem Tick ausgeführt. Lediglich für die Entscheidung eine Order zu eröffnen rechnet der EA intern auf Basis von M5 den SMA und den Close-Preis aus. Es ist somit egal, welcher Timeframe im Chartfenster eingestellt ist.

3.) Der EA ist so an sich sicher nur ein Programmierbeispiel. Wenn Du den so, unverändert auf Dein Konto los lässt, ist die Wahrscheinlichkeit großer, dass Dein Konto platt gemacht wird, als dass die Gewinne ins unendliche wachsen. Lange Trendphasen in die Gegenrichtung sind nicht abgesichert und können schnell das Konto plätten.

Hoffe ich konnte helfen
Ronald

Enno 22.09.11 09:10

sagt mal, warum bekomme ich die fehlermeldung Acount free Margin 10 000 is Full

hab schon probiert,aber bekomm das nicht weg diesen Fehler


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:33 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