Vorschlag an die Verwaltung und die Anwohner - Seite 6

 
Фьючерсные объемы для МТ:

Ich schließe mich der Frage an - was ist an dem Code im ersten Beitrag schlecht?

Über OOP. Es gibt nicht nur eine Menge Material, sondern eine ganze Menge davon. Nur nicht auf dieser Website. Und selbst hier gibt es welche. Manche Leute sind einfach zu faul, um gründlich zu recherchieren und zu studieren.

Zumindest funktioniert es nur mit der Stromquelle, auf der der Expert Advisor installiert ist....
 
Vladimir Pastushak:
Zumindest funktioniert es nur für das Symbol, auf dem der Expert Advisor installiert ist....

Nein, der Code ist ziemlich gut. Es ist nur so, dass Sie etwas von ihm wollen, wofür es nicht gedacht ist.

Und das wird das größte Problem mit Ihrem Vorschlag im Allgemeinen sein.

Viele Dinge können auf verschiedene Weise effektiv geschrieben werden. Unterschiedliche Personen bewerten sowohl die Aufgabe als auch die Lösung und die Kriterien für ihre Wirksamkeit auf unterschiedliche Weise.

Bei MT ist es mir zum Beispiel wichtiger, einfachen Code zu haben, als ihn aus universellen Bausteinen zusammensetzen zu können.

 
Владимир:

Machen Sie sich keine Sorgen. Das ist nicht mein Handwerk.

Wenn ich Sie bitte, mir ein Beispiel für das Schreiben von Code zu zeigen, sagen Sie: "Wie viel Zeit bleibt noch bis zum Ende des Zeitrahmens?" Du schickst mich garantiertzu 100%zum Teufel

oder an die Arbeitsabteilung. Das ist nur, um ein Beispiel zu geben!

Das ist es, was Angst und Widerwillen ausmacht. Aber die Finger sind immer ausgestreckt.

Man könnte auch sagen, dass die meisten, die nach dem Code fragen, einfach zu faul sind, um den Code "Wie viel Zeit bleibt noch bis zum Ende des Zeitrahmens?

Es ist uninteressant, sich den Faulenzern zu offenbaren)

 

Владимир:

VOLDEMAR hat Recht. Programmierer sind alle unterschiedlich.

Artyom Trishkin 2015.05.31 11:27

//+----------------------------------------------------------------------------+
   datetime GetTimeLeft(string symbol, int timeframe) {return(60*timeframe+(iTime(symbol,timeframe,0)-TimeCurrent()));}
//+----------------------------------------------------------------------------+

Ich wähle Artyom Trishkin.

Ich stimme zu, es wäre toll, wenn alle gleich wären...

Und ich respektiere Artyom(artmedia70), aber in diesem Fall kann ich mich nicht für ihn entscheiden... Und die Kürze des Codes ist noch kein Allheilmittel.

Prägnanter Code kann unsicher und potenziell gefährlich sein...

iTime

Gibt den Wert der Öffnungszeit des Balkens (angegeben durch den Parameter shift) des entsprechenden Diagramms zurück.

datetime  iTime(
   string           symbol,          // символ
   int              timeframe,       // период
   int              shift            // сдвиг
   );

Parameter

Symbol

[Symbolname des Symbols. NULL bedeutet aktuelles Symbol.

Zeitrahmen

[in] Zeitraum. Kann einer der Werte der Aufzählung ENUM_TIMEFRAMES sein. 0 bedeutet den Zeitraum des aktuellen Diagramms.

Schicht

[in] Index des Zeitrahmenwertes (Verschiebung relativ zum aktuellen Balken um die angegebene Anzahl von Balken zurück).

Zurückgegebener Wert

Wert der Bar-Open-Time (angegeben durch den Shift-Parameter) des entsprechenden Charts oder 0 im Falle eines Fehlers. Sie müssen GetLastError() aufrufen, um weitere Informationen über den Fehler zu erhalten.


 

Forum für Handel, automatisierte Handelssysteme und Strategietests

Vorstellung bei der Verwaltung und den Einheimischen

Vladimir Pastushak, 2015.05.31 08:20

Die Frage, die sich Ihnen stellt, ist, welcher Code Ihrer Meinung nach korrekter ist.

1

void depth_trend()
  {
//--- определение индекса на покупку
   double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0);
   index_rsi = 0;
   if(rsi>90.0) index_rsi=4;
   else if(rsi>80.0)
      index_rsi=3;
   else if(rsi>70.0)
      index_rsi=2;
   else if(rsi>60.0)
      index_rsi=1;
   else if(rsi<10.0)
      index_rsi=-4;
   else if(rsi<20.0)
      index_rsi=-3;
   else if(rsi<30.0)
      index_rsi=-2;
   else if(rsi<40.0)
      index_rsi=-1;
  }

2

int refresh_depth_trend()
  {
   int    index_rsi=0;
   double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,0),up=60,dw=40;
   for(int i=1; i<=4; i++,up+=10,dw-=10)
      index_rsi=rsi>up ? i : rsi<dw ?(i*-1):index_rsi;
   return index_rsi;
  }

3

int refresh_depth_trend()
  {
   return MathFloor( MathAbs( (rsi-50.0)/10.0 - (rsi-50.0)*0.0001 ) ) * ((rsi>50)-0.5)*2;
  }

-- Ich habe nicht jede Option auf ihre Korrektheit geprüft, aber wenn man davon ausgeht, dass alle drei Optionen den Ergebnissen zufolge identisch sind, ist jede Option korrekt.

-- über die Kürze des Codes -- welche Option ist am einfachsten und schnellsten zu bearbeiten? -- Welche Variante ist nach einiger Zeit einfacher und schneller logisch und ohne weitere Erklärung zu bewältigen?

 
Владимир:

Ich wähle

Deshalb fächern sich Programmierer die Finger :) Sie haben nicht wirklich eine große Auswahl, und das haben Sie nicht verstanden. In meiner Datei sehen Sie ein Beispiel für eine Implementierung mit sekundengenauer Anzeige der verbleibenden Zeit im Diagramm. Und diese Funktion wird den Timer nur beim nächsten Tick-Empfang aktualisieren, wenn TimeCurrent() aktualisiert wird + ihre Ausgabe muss irgendwie realisiert werden, d.h. wir sollten sie mit etwas kurzem Code überladen. In meinem Beispiel ist das ganze Zeug mit der Präzisionsoptik schon da, und TimeCurrent() wird nur zur Synchronisation mit dem Server verwendet :)
 
Übrigens, TimeCurrent ist eine sehr heikle Funktion
 
Und MQL5 hatTimeTradeServer - sehr interessant, aber ich hatte noch keine Gelegenheit, es zu benutzen
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Puzanov:
Deshalb benutzen Programmierer einen Fächer aus ihren Fingern :) Sie haben wirklich nichts zur Auswahl und Sie haben es nicht verstanden. In meiner Datei befindet sich ein Beispiel für eine Implementierung mit sekundengenauer Anzeige der verbleibenden Zeit auf dem Diagramm. Und diese Funktion wird den Timer nur beim nächsten Tick-Empfang aktualisieren, wenn TimeCurrent() aktualisiert wird + ihre Ausgabe muss irgendwie realisiert werden, d.h. wir sollten sie mit etwas kurzem Code überladen. In meinem Beispiel ist das ganze Zeug mit der Präzisionsoptik schon da, und TimeCurrent() wird nur zur Synchronisation mit dem Server verwendet :)

Warum, stolpern Sie über einen 'Fan' meiner Finger?

Ich habe Ihnen gezeigt, wie Sie feststellen können, wie viel Zeit bis zur Eröffnung der nächsten Kerze in einem beliebigen Zeitrahmen verbleibt. Das ist alles. Die Frage war genau dieselbe.

 
Liebe Programmiererinnen und Programmierer, wo finde ich eine Methode zur Programmierung in µl, bei der die in den exel-Spalten hinterlegten Programme direkt verwendet werden und somit das gesamte exel-Programm in µl "gefahren" wird?