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

 
Elenn:


Alle Variablen gehen verloren, wenn Sie das Programm beenden (Neustart des Computers usw.). Mit Ausnahme von globalen Variablen, da diese auf der Festplatte gespeichert werden. Sie können aber nur vom Typ double sein. Was ist zu tun, wenn es notwendig ist, Variablen anderer Typen zu speichern (z. B. int oder string)? Was ist hier unklar?

Der Typ der Variablen.

D.h. G.P. können nur reelle Zahlen sein. Es ist auch möglich, globale Variablen für ein bestimmtes Programm innerhalb des Programms zu deklarieren, hier heißt es

 

Grüße MQL-Gurus!

Helfen Sie einem Neuling beim Schreiben eines Codes: Ich weiß, dass es für Sie einfach ist, aber für einen Neuling .....

Die Bedingung - mehrere Positionen zu schließen, die auf einer Seite nach der gleichen Bedingung geöffnet wurden (für mich, nachdem der Preis einen MA überschritten hat)

Ich habe einige Tage lang versucht, einige Beispiele aus den Skripten von Kim und Sergey (keine weiteren Informationen über ihn) zu verwenden, aber nichts funktioniert.

Ich habe drei offene Aufträge, von denen nur der letzte aufgrund von Bedingungen geschlossen werden muss.

Je nach Bedingung, aber immer nur eine auf einmal. Ich möchte, dass sie alle auf einmal an der ersten Kreuzung geschlossen werden...

So habe ich es ausprobiert, jetzt lässt es sich überhaupt nicht mehr schließen.


//+------------------------------------------------------------------+
//| Check for close order Buy |
//+------------------------------------------------------------------+
void CheckForClosebuy()
{
double maclosebuy;
//---- nur für die ersten Ticks des neuen Balkens handeln
if(Volume[0]>1) return;
//---- gleitender Durchschnitt
maclosebuy=iMA(NULL,TF,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrderMagicNumber()==MAGIC;i++)
{
while (i>0)
{

if (Open[1]>maclosebuy && Close[1]<maclosebuy)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Aqua);
continue;
}
}
return(0);
}

 
Elenn:

"Sich nicht zu beschweren" ist nicht wirklich ein mathematisches Konzept.

Hier steht es geschrieben:


Es gibt globale Variablen des Client-Terminals, sie sind doppelt - https://book.mql4.com/ru/variables/globals sie sind für den Austausch zwischen EAs

Und es gibt nur globale Variablen, sie können von jedem Typ sein https://book.mql4.com/ru/variables/types sie sind innerhalb eines EA

Was ist Ihre Aufgabe?

 

Guten Abend, ich bin hier völlig ratlos. Ich spiele mit dem Code herum, der zwei Aufträge öffnen sollte, Buystop und Sellstop, und das war's. Es scheint kein sehr intelligenter Code zu sein, alles scheint klar zu sein, aber er öffnet fünf Aufträge, und das war's! Ich durchforstete seine Alarme während der Fehlersuche, aber es stellte sich heraus, eine absolut erstaunliche Sache, er öffnet zunächst zwei Bars (2011.06.04 20:20:48 2011.02.10 19:00 für EURUSD Lawine, H1: Alert: OrderType ( )0) Kann nicht, kann nicht sein!!!!!! Nun, er hat nichts, womit er sie öffnen könnte! Keine Möglichkeit!!!!!

Er hat nur eine Auftragsart OP_BUYSTOP und OP_SELLSTOP. Und das bei Entfernungen von 20pp nach oben und unten.

Ist mein Computer defekt?

Ich zitiere // 0 - OP_BUY kaufen
1 - OP_SELL verkaufen
2 - OP_BUYLIMIT schwebendes Kauflimit
3 - OP_SELLLIMIT aufgeschobenes Verkaufslimit
4 - OP_BUYSTOP ausstehender Kaufstopp
5 - OP_SELLSTOP Ausstehender Verkaufsstopp

Es kann keine anderen Werte geben.


//

Wie auch immer, ich bin nicht schockiert, aber ich stecke in einer Sackgasse. Nachfolgend finden Sie den Code und einen Screenshot

//+------------------------------------------------------------------+
//|                                                   ля лавин б.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
  
  
  int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price; int stsBUY;int stsSELL;double Price;int C=0;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
int X,Y; double price=(Ask+Bid)/2;            

       Alert ("OrdersTotal()",OrdersTotal());
       
       if(C==0){ Price = price ;  C=1;}


 for(int i=OrdersTotal();i>0;i--){Alert ("i", i);Alert ("OrderType( )", OrderType( ));OrderSelect(i,SELECT_BY_POS );if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000){
if(OrderType( )==OP_BUYSTOP){X++;Alert ("X-v tsikle", X);}}}Alert ("X", X);
if (X==0){Alert ("Price", Price);Alert ("Price +otstup*Point",Price +otstup*Point);Alert ("Price+takeprofit*Point+otstup*Point", Price+takeprofit*Point+otstup*Point);


   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, Price +otstup*Point, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); }
   

 for ( i=OrdersTotal();i>0;i--){Alert ("i", i);Alert ("OrderType( )", OrderType( )); OrderSelect(i,SELECT_BY_POS );if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) { 
if(OrderType( ) ==OP_SELLSTOP) { Y++;Alert ("Y-v tsikle", Y);}}}Alert ("Y", Y);
 if (Y==0){ 
 
 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, Price -otstup*Point, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    } 
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

Ich weiß einfach nicht, was ich davon halten soll.

 

Die Variablen X und Y sind die Anzahl der By-Stop- und Sell-Stop-Aufträge.

Im Protokoll können Sie sehen, dass der Auftrag zuerst ausgelöst wird, wodurch der Auftrag umgangen wird, und dass es keinen Fehler gibt. Dann stellt sich plötzlich heraus, dass wir bei der Überprüfung der Auftragsart einen Kaufauftrag mit einer numerischen Konstante von Null haben. usw.

Vielleicht ist die Warrant-End-Funktion fehlerhaft?

Und erst dann tauchen die Aufträge 5 und 4 auf!!!


 
Dimka-novitsek:

Guten Abend, ich bin hier völlig ratlos.

Ich habe den Eindruck, dass Sie hoffnungslos sind. Sie haben bereits einen Berater, den Sie Stück für Stück zusammengestellt haben, und Sie fügen die alten Fehler in jede neue Version ein. Ersetzen Sie alles

 for(int i=OrdersTotal();i>0;i--)

mit .

 for(int i=OrdersTotal()-1;i>=0;i--)
 
Snaf:


Was ist Ihre Aufgabe?

Meine Aufgabe ist es, verschiedene Arten von Daten zu speichern und schnell auf sie zugreifen zu können. Ich denke, es wäre ein langer Weg durch die Akten. Durch die globalen Variablen kann schnell sein, aber sie können nur Typ double speichern. Das ist es, was ich denke.
 
Elenn:
Mein Ziel ist es, verschiedene Arten von Daten zu speichern und schnell auf sie zugreifen zu können. Ich denke, dass es lange dauern würde, Dateien zu verwenden. Globale Variablen können schnell sein, aber sie können nur den Typ double speichern. Ich frage mich also, was ich tun soll.
Es wird nicht lange dauern, bis eine Datei durch ist. Es wird ziemlich schnell gehen. Es gibt noch eine weitere Variante. Sie können Daten in grafischen Objekten speichern. Die Namen werden im Voraus geschrieben, und Sie können Integer- und Bruchzahlen in Werten speichern, das Datum in Datumskoordinaten. Der String-Typ in der Objektbeschreibung
 
Daten in Objekten speichern. Einfach und schnell abzuholen. Einfach zu suchen. Einfach zu suchen. Bequem.
 
Porter:
Daten in Objekten speichern. Einfach und schnell abzuholen. Einfach zu suchen. Einfach zu suchen. Bequem.

Und wie funktioniert die Objektspeicherung und was passiert mit den Objekten im Falle eines Computerabsturzes?
Grund der Beschwerde: