[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 226

 
doon:

Wie kann ich einen EA dazu bringen, zu einem bestimmten Zeitpunkt zu kaufen oder zu verkaufen(Schlaf nicht zu verwenden)?

Die Datums- und Zeitfunktionen sind hilfreich: https://book.mql4.com/ru/functions/datetime
 
Fam:
Die Datums- und Zeitfunktionen sind hilfreich: https: //book.mql4.com/ru/functions/datetime

Danke, aber Sie müssen dort noch einen Zettel einfügen.

 
Leute! Ich versuche zu machen, dass viel gehandelt wird, je nach Risiko.... was nicht funktioniert....schreibt
 EURUSD,M15: OrderSend error 4051

Sagen Sie mir, wo der Fehler liegt....

void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenBuy); 
   if (UseSound) PlaySound(NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenSell); 
   if (UseSound) PlaySound(NameFileSound); 
} 
string GetCommentForOrder() {   return(Name_Expert); } 
double GetSizeLot() { 
   double ldlot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
   ldlot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) ldlot=NormalizeDouble(ldlot-ldlot*losses/DecreaseFactor,1);
     }
   if(ldlot<0.1) ldlot=0.1;
                         } 
double GetStopLossBuy() {       return (Bid-sStopLoss*Point);} 
double GetStopLossSell() {      return(Ask+sStopLoss*Point); } 
double GetTakeProfitSell() {    return(Bid-sTakeProfit*Point); } 
double GetTakeProfitBuy() {     return(Bid+sTakeProfit*Point); } 

return(0);
 

Danke an alle, ich werde es ausprobieren...
 
charter:

Ich fürchte, das gilt nur für die Zeitreihen.

In meinem Fall gibt es nicht einmal eine Stelle, an der man sie einstechen kann.

Ihre Idee ist richtig, d.h. die Reihenfolge muss irgendwie umgedreht werden, aber ich weiß noch nicht wie


Keine Sorge, es funktioniert.
 
Vovo4ka:
Leute! Ich versuche zu machen, dass viel gehandelt wird, je nach Risiko.... was nicht funktioniert....schreibt

Sagen Sie mir, wo der Fehler liegt....


Ich habe vergessen, eine Linie auf dem Parkplatz zu setzen.
return (ldlot);
 
todem:

Ich habe vergessen, eine Linie auf dem Parkplatz zu setzen.

right...... forgot.... thank you very much.... I've already checked it 20 times, I couldn't figure out what the hell...)
 

Hilfe bei einer Frage zu requote+slippage.

Die Situation ist wie folgt: Ich sende eine Anfrage für eine Transaktion durch Expert Advisor, Slippage=3 pt, Fehler 138 Requote tritt auf. Ich habe versucht, RefreshRates() und versuchte es erneut mit einem neuen Ask, aber der Server-Preis ist besser als der Ask, den ich gesendet habe (das zweite Mal nach RefreshRates()), und logischerweise muss ich zustimmen, aber weil Server-Preis-Abweichung ist größer als Slippage in der Anfrage - diese Anfrage wird abgelehnt. (((

Wie können Sie diese Situation kontrollieren? D.h. wenn der Serverpreis besser ist, dann den Slippage verschieben oder was, damit die Anfrage vom Server akzeptiert wird. Oder ist das nicht möglich?

 
ZZZEROXXX:

Hilfe bei einer Frage zu requote+slippage.

Die Situation ist wie folgt: Ich sende eine Anfrage für eine Transaktion durch Expert Advisor, Slippage=3 pt, Fehler 138 Requote tritt auf. Ich habe versucht, RefreshRates() und versuchte es erneut mit einem neuen Ask, aber der Server-Preis ist besser als der Ask, den ich gesendet habe (das zweite Mal nach RefreshRates()), und logischerweise muss ich zustimmen, aber weil Server-Preis-Abweichung ist größer als Slippage in der Anfrage - diese Anfrage wird abgelehnt. (((

Wie können Sie diese Situation kontrollieren? D.h. wenn der Serverpreis besser ist, dann den Slippage verschieben oder was, damit die Anfrage vom Server akzeptiert wird. Oder ist das nicht möglich?


Erhöhen Sie den Schlupf. Die Geschäfte müssen in einem schnellen Markt eröffnet worden sein. Es passiert manchmal nach wichtigen Nachrichten, dass die Eurobucks so schnell in 1-2 Ticks sind, dass es ein Alptraum ist. Und während der Server die Bestellung des Beraters bearbeitet, ändert sich der Preis sehr stark.
 
Zhunko:
MT4 hat einen eingebauten Konverter. Service -> Zitate Archiv.

Ich danke Ihnen! Das Ziel ist jedoch das folgende. Versetzte Tagesbalken (Candlesticks), die mit dem Eintreffen von Kursen aktualisiert werden, das Diagramm verhält sich wie ein normales Diagramm: Sie können andere Indikatoren, EAs, Build-Kanäle, Ebenen, etc. daran hängen. Es sollte so etwas wie Nicht-Standard-Zeitrahmen sein, aber Nicht-Standard in der Verschiebung von Bars (Candlesticks) relativ zur Terminalzeit: H4 - bei -3, -2, -1, 1, 2 oder 3 Stunden; D1 - bei -23, -22, ... 1, 2, ... oder 23 Stunden; W1 - für -6, -5, ... oder 6 Tage und so weiter. Der Offset muss in den Eingabeparametern des Indikators eingestellt werden.

Gibt es so etwas?

Ich danke Ihnen im Voraus.