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

 
drknn:
Vielleicht endet der Wert dort mit einer Null und diese letzte Null wird beim Normalisierungsprozess einfach verworfen? Verworfen, weil der Eintrag 0,1 gleichbedeutend mit 0,10 ist und Null besser verworfen wird?

unwahrscheinlich, von Hand habe ich mir den Zeilenwert am Punkt des letzten Balkens angesehen, es gab keine Null... und in einigen Fällen wurde der Wert genau auf die 4. Stelle umgerechnet, manchmal auf die 3.
 
drknn:


Es funktioniert nicht (es gibt einen korrekten Wert an die Zeichenkette zurück, aber die Variable ist voller Mist, 3 oder 4 Ziffern.

Gibt es eine Möglichkeit, diesen Wert korrekt aus der Zeichenkette zu ermitteln?

 
NameLess:


Es funktioniert nicht(( die Zeichenfolge gibt einen korrekten Wert zurück, aber die Variable ist voller Mist, 3 oder 4 Ziffern.

Gibt es eine Möglichkeit, den Wert aus der Zeichenkette korrekt zu ermitteln?


Sie können ein dll-Gehäuse erstellen und darin abrunden. Ich musste so etwas tun, um einfach den Bruchteil einer Zahl zu verwerfen. Was hier nicht klar ist - ist der Indikatorcode für fünf Ziffern ausgelegt? Diese Frage kann wahrscheinlich nur von einem Entwickler beantwortet werden. Oder erstellen Sie einfach Ihren eigenen Indikator.
 
drknn:

Sie können eine Delle und eine Runde darin machen. Ich musste dies tun, um den gebrochenen Teil einer Zahl einfach zu verwerfen. Was hier nicht klar ist - ist der Indikatorcode für fünf Ziffern ausgelegt? Diese Frage kann wahrscheinlich nur von einem Entwickler beantwortet werden. Oder erstellen Sie einfach Ihren eigenen Indikator.

Ich habe iMA überprüft und es scheint in Ordnung zu sein. Um ehrlich zu sein, weiß ich nicht, was die Ursache dafür ist.
 
NameLess:

Ich habe iMA gesehen und es scheint in Ordnung zu sein. um ehrlich zu sein, verstehe ich nicht, warum es passiert. aber es tut. ich habe keine Ahnung, was mit dlls zu tun, können Sie zumindest senden Sie mir einen Link zu lesen?


Ich habe keine Ahnung, wo ich den Link herbekomme, um den Inhalt des dll-Case zu lesen. Oder versuchen Sie, einen Wert in MQL4 einzugeben und eine Funktion zu erstellen, die nur X Zeichen aus der Zeichenkette übernimmt. Beispiel: Preis = 1,25254130 - dieser Wert wurde in die Zeichenfolge eingefügt. Die Funktion sollte die ersten 7 Zeichen durchgehen und genau diese zurückgeben - also 1,2525254. Wir schleifen diesen Wert einfach in eine neue Zeichenfolge ein, Zeichenfolge für Zeichenfolge, wie eine Perle. Dann wandeln Sie es in einen Double um und geben es aus dem Unterprogramm zurück.

Über die dll - schauen Sie etwas wie dieses auf diesem Forum https://www.mql5.com/ru/forum/124088

 
drknn:


Das ist bereits ein Problem - man braucht zumindest oberflächliche Kenntnisse einer Programmiersprache. Oder versuchen Sie, den Wert in der Zeichenkette zu nehmen und eine Funktion zu erstellen, die nur x Zeichen aus der Zeichenkette herausnimmt. Beispiel: Preis = 1,25254130 - dieser Wert wurde in die Zeichenfolge eingegeben. Die Funktion sollte die ersten 7 Zeichen durchgehen und genau diese zurückgeben - also 1,2525254. Wir schleifen diesen Wert einfach in eine neue Zeichenfolge ein, Zeichenfolge für Zeichenfolge, wie eine Perle. Dann wandeln Sie es in einen Double um und geben es aus dem Unterprogramm zurück.

Über die dll - siehe so etwas in diesem Forum https://www.mql5.com/ru/forum/124088


Ich weiß, nicht in die Tiefe, aber nicht in jeder Sprache überhaupt)))) ja die Methode ist vertraut. danke für den Rat. ich habe gerade nie mit DLLs behandelt, wie ich nie professionell programmiert habe.

Um ehrlich zu sein, ich bin verwirrt, weil das Problem nicht logisch ist überhaupt, ich kann nicht einen Wert aus dem Indikator zu bekommen, oder besser gesagt, ich kann, aber nur auf eine Zeichenfolge.

 

Bitte beraten Sie mich, wie man die einmalige Ausführung einer Bedingung in einem EA (z.B. das Öffnen einer Order) zulässt, anstatt sie bei jedem Tick zu wiederholen. In diesem Fall sollte der EA beim Schließen einer Position keine neue Position eröffnen. Ich habe versucht, es mir vorzustellen, aber es funktioniert nicht so, wie es soll.

extern bool    BUY         = true;
extern int     Magic       = 0;
extern double  Lot         = 0.1;
extern int     takeprofit  = 0;
extern int     stoploss    = 0;
extern int     slippage    = 3; 
double SL,TP;
int init(){
    return(0);
  }
int start()
{
   if (BUY)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy");
   }

return(0);
}
void OPENORDER(string ord)
{
int error;
 while (true)
 { error=true;
 if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0){BUY = false;}
}
return;
}
Ich danke Ihnen im Voraus.


 
nemo811:

Bitte beraten Sie mich, wie man die einmalige Ausführung einer Bedingung in einem EA (z.B. das Öffnen einer Order) zulässt, anstatt sie bei jedem Tick zu wiederholen. In diesem Fall sollte der EA beim Schließen einer Position keine neue Position eröffnen. Ich habe versucht, es mir vorzustellen, aber es funktioniert nicht so, wie es soll.

Ich danke Ihnen im Voraus.



Ich habe dieses Problem gelöst, indem ich eine Flagge in die Bedingung vor einer Aktion (in diesem Fall das Öffnen) eingefügt habe; innerhalb der Bedingung ändert die Flagge nach dem Öffnen einer Order ihren Wert, und beim nächsten Tick wird das Programm diese Bedingung mit der Ordereröffnung nicht mehr eingeben. Wenn der Prozess automatisiert ist, können Sie eine Funktion einfügen, die alle Flaggen löscht, wenn es keine offenen Positionen gibt, andernfalls wird der EA die Order nur einmal öffnen und ausblenden, da die Flagge ihren Wert nicht ändert
 
NameLess:

Ich habe dieses Problem gelöst, indem ich eine Flagge in die Bedingung vor jeder Aktion (in diesem Fall, Eröffnung), innerhalb der Bedingung nach der Eröffnung einer Bestellung die Flagge ändert den Wert und jeweils auf den nächsten Tick das Programm wird nicht in diese Bedingung mit der Eröffnung einer Bestellung. Wenn der Prozess automatisiert ist, dann können Sie eine Funktion, die alle Flaggen im Moment der Abwesenheit von offenen Positionen löschen würde, sonst wird der EA nur die Bestellung einmal öffnen und dann ausblenden, weil die Flagge wird nicht den Wert ändern

Bitte geben Sie mir ein Beispiel. Ich lerne gerade erst und habe mich noch nicht mit der Aufgabe befasst, eine Flagge zu setzen. )
 
nemo811:

Bitte geben Sie mir ein Beispiel. Ich lerne gerade erst und bin noch nicht mit der Aufgabe konfrontiert, eine Flagge aufzustellen. )

Ich bin selbst kein Profi, ich erzähle dir nur, wie ich das Problem gelöst habe. Es ist kein kleiner Code und du wirst länger brauchen, um es herauszufinden, als die Idee von Grund auf zu entwickeln)))