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

 
Mr.Profit:

Guten Tag!

Wie kann man mit "MetaEditor nicht gefunden" kämpfen, wenn man versucht, einen EA zu bearbeiten? MetaTrader Build 600.

Ich kann mich nicht erinnern, dass es in älteren Versionen ein solches Problem gab...

Kann es daran liegen, dass der Computer, an dem ich arbeite, ziemlich leistungsschwach ist und zu 50-75 % ausgelastet ist? Ich habe 7 MT4-Instanzen darauf laufen, aber unter normalen Bedingungen (d.h. ohne externe Belastung wie z.B. Zugriff über TeamViewer und Versuch, MetaEditor zu starten) ist die Leistung ausreichend, und der im Hintergrund laufende Task-Manager zeigt eine durchschnittliche CPU-Auslastung <=45-50% für 15-20 min.

Dieses Problem tritt nicht in 100 % der Fälle auf, und MetaEditor wird, nachdem er ungewöhnliche Geduld und Ausdauer bewiesen hat, ab dem 5. bis 10. und 25. Aber es ist wirklich ärgerlich, wenn man eine halbe Stunde lang versucht, MetaEditor zu starten.

Mit solchen Fragen sollten Sie in den 610. Build-Thread gehen - die Entwickler sind dort
 
r772ra:



Danke.

Bitte beraten Sie uns, solange Sie noch keine Zäune errichtet haben.

Was könnte man noch einfacher machen?

input int    Slippage   = 10;   // установим значение проскальзывания 
extern string ___START_SETUP_ = "---ОСНОВА---";  
input double StartLot   = 0.02; 
extern double LotMultiplicator = 1.3;
extern int N_LotMult = 2;
extern string ___STEP_SETUP_BLOK_ = "--- БЛОК УСЛОВИЙ СЕТКИ ---";
extern int Mode_Step = 1;
extern int Step = 5;
extern int StepUv_Step = 5;
extern string ___CLOSE_SETUP_BLOK_ = "--- БЛОК УСТАНОВОК ЗАКРЫТИЯ ---";
extern int TakeProfit = 40;


double z,y, lot=StartLot, count, step=Step;

  
void OnTick()
  {  
   
     int i_buy=0; int i_sell=0;
     for(int i=0;i<OrdersTotal();i++){
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){
              switch(OrderType()){// Есть ли открыте ордера
                 case OP_BUY:
                    i_buy++;
                 break;
                 case OP_SELL:
                    i_sell++;
                 break;
               }
               
              y = int((OrderOpenPrice()-Ask)/Point); 
              z = OrderLots();
              
              count++;            
          }   
     }
    
     if(LotMultiplicator > 1 && count > N_LotMult) lot = z + z/LotMultiplicator;    
     if(Mode_Step==1) step = Step + count*StepUv_Step;

     if((i_buy==0 && i_sell==0) || y >= step) //--- нет открытых ордеров, открываем
         OrderSend(Symbol(), OP_BUY,lot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue);
     
       count=0;
   
 
Zolotai:


Danke.

Bitte beraten Sie uns, solange Sie noch keine Zäune errichtet haben.

Was könnte man noch einfacher machen?


BITTE lernen Sie, wie man den Code richtig einfügt! CTRL+ALT+M oder SRC.
 
evillive:
BITTE lernen Sie, wie man den Code richtig einfügt! CTRL+ALT+M oder SRC.

Erledigt.
 
Zolotai:


Spc.

Bitte beraten Sie uns, solange Sie noch keine Zäune errichtet haben.

Was könnte man noch einfacher machen?


Und es gibt keine Kompilierungsfehler? Und auch keine Ausführungsfehler?

Beschreiben Sie zunächst, was Sie am Ende haben wollen, denn es gibt Fragen zu einigen Stellen im Code:

 y = int((OrderOpenPrice()-Ask)/Point); //подставьте в уравнение реальные цены
if((i_buy==0 && i_sell==0) || y >= step) //--- нет открытых ордеров, открываем открывает позицию всегда когда y >= step, а это будет практически всегда по формуле выше, за исключением коридора шириной в "step"
 
evillive:

Und es gibt keine Kompilierungsfehler? Und auch keine Ausführungsfehler?

Beschreiben Sie zunächst, was Sie am Ende haben wollen, denn es gibt Fragen zu einigen Stellen im Code:




Gibt es etwas, das vereinfacht werden könnte? Vielleicht ein paar zusätzliche Variablen... Alles, was ich jetzt habe, ist ein schrittweises Öffnen, eine Erhöhung der Menge und das war's. Ich brauche noch kein Klopapier. Ist es möglich, es ein bisschen einfacher zu machen, weniger Code...
 
Gibt es viel von ihm? Da gibt es nichts zu vereinfachen, im Gegenteil, es sollte noch verschärft werden )))
 
evillive:
Gibt es viel von ihm? Da gibt es nichts zu vereinfachen, im Gegenteil, es sollte noch verschärft werden )))

Danke. Können Sie eine Funktion vorschlagen? Wenn ich eine Stop- und Takeaway-Order mit der letzten Order platzieren möchte, dann wird die erste Order gemittelt. Die vorletzte Bestellung mit der ersten und so weiter. Als ob wir in die Mitte gehen würden...
 
Ich bin sicher, dass es in der kodobase viele Netizens gibt - Medien, Martins, Anti-Martins, für jeden Geschmack.
 
evillive:
Ich bin sicher, dass es in der kodobase viele Netizens gibt - Medien, Martins, Anti-Martins, für jeden Geschmack.

Ja, aber, weißt du. Man muss in den Codes anderer Leute herumstochern. Das verstehe ich nicht, und es kostet viel Zeit. Um es herauszufinden.