Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 237
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo, meine Herren Programmierer.
Ich bin zu faul, mir die Anleitung anzusehen. Vielleicht wissen Sie, was in Ihrem Expert Advisor geändert werden sollte, damit er das Money Management in 0,01 Schritten statt in 0,1 Schritten anwendet.
Hallo, meine Herren Programmierer.
Ich bin zu faul, mir die Anleitung anzusehen. Vielleicht wissen Sie, was in Ihrem Expert Advisor geändert werden sollte, damit er das Money Management bei 0,01 und nicht bei 0,1 anwendet.
Alle sind zu faul
Alle sind faul
Es ist eine Sache, wenn ein Programmierer, der die Sprache kennt, zu faul ist, das Programm zu öffnen. Etwas anderes ist es, wenn eine Person, die die Sprache nicht beherrscht, zu faul ist, die Sprache zu lernen, um eine im Grunde einfache Frage zu beantworten. Wenn die Kenntnis der Sprache eine Notwendigkeit für einen Programmierer ist, macht es für mich keinen Sinn, in sie einzutauchen :) Das ist alles. Aber wenn sich niemand meldet, muss ich es natürlich tun. Aber was ist dann der Sinn des Forums, wenn hier nur Programmierer kommunizieren?
Es ist eine Sache, wenn ein Programmierer, der die Sprache beherrscht, zu faul ist, ein Programm zu öffnen. Etwas anderes ist es, wenn eine Person, die die Sprache nicht kennt, zu faul ist, die Sprache zu lernen, um eine im Grunde einfache Frage zu beantworten. Wenn die Kenntnis der Sprache eine Notwendigkeit für einen Programmierer ist, macht es für mich keinen Sinn, in sie einzutauchen :) Das ist alles. Aber wenn sich niemand meldet, muss ich es natürlich tun. Aber was ist der Sinn dieses Forums, wenn hier nur Programmierer kommunizieren?
Wenn es keinen Sinn macht - stellen Sie keine Fragen, sondern direkt hier
Wenn es keinen Sinn ergibt, stellen Sie keine Fragen und kommen Sie direkt hierher
Ich danke Ihnen.
Hallo, meine Herren Programmierer.
Ich bin zu faul, mir die Anleitung anzusehen. Vielleicht wissen Sie, was in Ihrem Expert Advisor geändert werden sollte, damit er das Money Management bei 0,01 und nicht bei 0,1 anwendet.
Ich habe 2 Ziffern geändert, mal sehen, ob es so funktioniert, wie es sollte.
Gibt es eine Möglichkeit, das gesamte Forum als gelesen zu markieren?
Und auch das MQL5-Forum...
Dankeschön
2 Ziffern geändert, um zu sehen, ob es so funktioniert, wie es sollte.
Es hat sich herausgestellt, dass jemand nicht faul ist. Ich habe einen Fehler gemacht.
Hallo zusammen!!! Ich danke Ihnen allen für die guten Ratschläge. Aber ich bin immer noch nicht in der Lage, mit dem, was ich angefangen habe, voranzukommen)) Mein EA öffnet zwei identische Aufträge und der Rest sind gegen die Bewegung, ich möchte es ändern, um auf die Bewegung zu öffnen!!! Ich habe alle Varianten ausprobiert.
BITTE BERATEN, WER KANN
Zeichenfolge GLOB_START;
int init()
{
GLOB_START = "@" + DoubleToStr(ID,0) + "@" +"_start";
if !GlobalVariableCheck( GLOB_START )GlobalVariableSet(GLOB_START,TimeCurrent());
zurück(0);
}
int deinit()
{
switch( UninitializeReason() )
{
case REASON_REMOVE: delete_glob ("@" + DoubleToStr(ID,0) + "@" );
}
if ( IsTesting() )delete_glob ("@" + DoubleToStr(ID,0) + "@" );
zurück(0);
}
void delete_glob ( string c )
{
int i;
for ( i = GlobalVariablesTotal()-1; i>= 0 ; i-- )if ( StringFind(GlobalVariableName(i),c) >= 0 )GlobalVariableDel(GlobalVariableName(i))
}
int start()
{
Kommentar(Info());
int KOL_BUY = order_total(0);
int KOL_SELL = order_total(1);
Doppel-L;
wenn ( Auftragssumme() == 0 )
{
offen(0,Lot,0,TP);
offen(1,Lot,0,TP);
}
if ( KOL_BUY == 0 && KOL_SELL != 0 )
{
offen(0,Lot,0,TP);
l = last_trade(1);
open(1,l,0,0);
ändern_bestellen(1);
}
if ( KOL_BUY != 0 && KOL_SELL == 0 )
{
offen(1,Lot,0,TP);
l = last_trade(0);
open(0,l,0,0);
modify_orders(0);
}
zurück(0);
}
string Info()
{
int i;
double buff_1 = 0, buff_2 = 0, buff_3 = 0;
string res = "\n";
for( i = OrdersHistoryTotal() - 1; i >= 0; i-- )
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if( OrderMagicNumber() == ID )
{
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,0) )buff_1 += OrderProfit();
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,1) && OrderOpenTime() < iTime(NULL,PERIOD_D1,0) )buff_2 += OrderProfit();
if ( OrderOpenTime() >= GlobalVariableGet(GLOB_START) )buff_3 += OrderProfit();
}
}
res = res + "Gewinn in der Einzahlungswährung für " + TimeToStr(iTime(NULL,PERIOD_D1,0)) + ": " + DoubleToStr(buff_1,0) + "\n" + "\n";
res = res + "Gewinn in Einzahlungswährung für " + TimeToStr(iTime(NULL,PERIOD_D1,1)) + ": " + DoubleToStr(buff_2,0) + "\n" + "\n";
res = res + "Gewinn in der Einzahlungswährung insgesamt:" + DoubleToStr(buff_3,0) + "\n";
return(res);
}
void modify_orders( int type )
{
int i;
datetime time_last = 0, time_first = TimeCurrent();
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT), op_pr_last, op_pr_first, level;
for( i = OrdersTotal() - 1; i >= 0; i-- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type )
{
wenn ( OrderOpenTime() > time_last )
{
op_pr_last = OrderOpenPrice();
time_last = OrderOpenTime();
}
if ( OrderOpenTime() < time_first )
{
op_pr_first = OrderOpenPrice();
time_first = OrderOpenTime();
}
}
}
if ( type == 0 )level = op_pr_last + MathAbs(op_pr_last-op_pr_first) * (SL/100);
if ( type == 1 )level = op_pr_last - MathAbs(op_pr_last-op_pr_first) * (SL/100);
for( i = OrdersTotal() - 1; i >= 0; i -- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type && NormalizeDouble(OrderTakeProfit(),Digits) != NormalizeDouble(level,Digits) )OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),level,0)
}
}
double last_trade( int t )
{
int i;
double res = -1;
datetime time=0;
for(i=BestellungenGesamt()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderOpenTime()>time && OrderMagicNumber()==ID && OrderType() == t)
{
res = OrderLots();
time = OrderOpenTime();
}
}
if ( Multiplikator )return(res * Lot_koeff);
if ( !Multiplikator )return(res + Lot_koeff);
}
int open(int type, double l, double sl=0, double tp=0, string comm = "")
{
int isOpened = 0, try = 0;
double s,t;
while ( IsTradeContextBusy() ){Sleep(500);}
RefreshRates();
if ( sl != 0 && sl < MarketInfo(Symbol(),MODE_STOPLEVEL) )sl = MarketInfo(Symbol(),MODE_STOPLEVEL);
if ( tp != 0 && tp < MarketInfo(Symbol(),MODE_STOPLEVEL) )tp = MarketInfo(Symbol(),MODE_STOPLEVEL);
wenn ( Typ == 0 )
{
wenn ( tp == 0 )t = 0;
if ( tp != 0 )t = Ask + tp * Point;
wenn ( sl == 0 )s = 0;
if ( sl != 0 )s = Bid - sl * Point;
}
wenn ( Typ == 1 )
{
wenn ( tp == 0 )t = 0;
if ( tp != 0 )t = Bid - tp * Point;
wenn ( sl == 0 )s = 0;
if ( sl != 0 )s = Ask + sl * Point;
}
s = NormalizeDouble(s,Digits);
t = NormalizeDouble(t,Digits);
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID);
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID);
Schlaf(500);
while(isOpened<0)
{
while ( IsTradeContextBusy() ){Sleep(500);}
RefreshRates();
wenn ( Typ == 0 )
{
wenn ( tp == 0 )t = 0;
if ( tp != 0 )t = Bid + tp * Point;
wenn ( sl == 0 )s = 0;
if ( sl != 0 )s = Bid - sl * Point;
}
wenn ( Typ == 1 )
{
wenn ( tp == 0 )t = 0;
if ( tp != 0 )t = Ask - tp * Point;
wenn ( sl == 0 )s = 0;
if ( sl != 0 )s = Ask + sl * Point;
}
s = NormalizeDouble(s,Digits);
t = NormalizeDouble(t,Digits);
versuchen++;
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID);
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID);
if(try > 5) break;
if(isOpened>=0)break;
Schlaf(500);
}
if(isOpened<0) Alert("Auftrag nicht geöffnet, Fehler:", GetLastError());
return(isOpened);
}
int order_total( int type_1 = -1, int type_2 = -1 )
{
int i;
int kol=0;
for(i=BestellungenGesamt()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==ID && (OrderType() == type_1 || OrderType() == type_2) )kol++;
if(OrderMagicNumber()==ID && type_1 == -1 && type_2 == -1 )kol++;
}
zurück(kol);
}
double check_lot(double &lo)
{
double l = MarketInfo(Symbol(),MODE_LOTSTEP);
int ok = 0;
while ( l < 1 ){l*=10;ok++;}
if( lo < MarketInfo(Symbol(),MODE_MINLOT) )lo = MarketInfo(Symbol(),MODE_MINLOT);
if( lo > MarketInfo(Symbol(),MODE_MAXLOT) )lo = MarketInfo(Symbol(),MODE_MAXLOT);
return(NormalizeDouble(lo,ok));
Können Sie die folgende Sache vorschlagen, gibt es N EAs auf dem Konto, die unter bestimmten Bedingungen alle eine Bestellung zur gleichen Zeit öffnen können, jeder von ihnen prüft nicht mehr als 1 Bestellung auf dem Konto, aber manchmal lande ich mit N Bestellungen, was kann ich tun?