Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 237

 

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.

Dateien:
 
SteelKnight84:

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
 
Vinin:

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?
 
SteelKnight84:

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
 
Vinin:

Wenn es keinen Sinn ergibt, stellen Sie keine Fragen und kommen Sie direkt hierher

Ich danke Ihnen.
 
SteelKnight84:

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.

Dateien:
 

Gibt es eine Möglichkeit, das gesamte Forum als gelesen zu markieren?

Und auch das MQL5-Forum...

Dankeschön

 
ALXIMIKS:


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?

Grund der Beschwerde: