[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 55

 
mr_Johns:

if((b_mod) && (PreisB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);


Hier sollten wir MarketInfo(Symbol(),MODE_STOPLEVEL) berücksichtigen, d.h.

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

priceS < =Bid- MarketInfo(Symbol(),MODE_STOPLEVEL)*Point




Nein. Diese Frage wurde bereits oben gelöst. Die Funktion funktionierte während des Tests einfach bei jedem Tick und ein neuer Preis wurde nicht so schnell erzielt. Als sich der Preis jedoch nicht änderte, trat der Fehler auf.
 
hoz:

Wenn Sie Elemente an eine Funktion vom Typ double oderint übergeben, kann diese die gleichen Operationen durchführen, allerdings ohne jegliche Perversionen. Warum sollte man sein Leben verkomplizieren?

Wenn eine Funktion einen Typ hat, wird davon ausgegangen, dass die Funktion einen Wert dieses Typs zurückgibt.

int test() {
  int res;
  
  // какие-то действия
  
  return(res);
}

Ihre Funktion gibt nichts zurück.

 
hoz:

Nein. Diese Frage wurde bereits oben gelöst. Die Funktion funktionierte während des Tests einfach bei jedem Tick und der neue Preis wurde nicht so schnell ermittelt. Als sich der Preis jedoch nicht änderte, wurde der Fehler angezeigt.

Was meinen Sie mit "nein"? Wenn die Bedingung

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

ist nicht erfüllt und priceB >Ask (wie im Code)

erhalten Sie eine Fehlermeldung.

Um den Auftrag nicht zu ändern, wenn der Preis noch keine Zeit hatte, sich zu ändern, sollten wir die Bedingung priceB!=OrderOpenPrice() eingeben

 
MikeM:
Ich würdeHour()>=18 schreiben, und die Minuten ganz weg lassen.
Und das ist auch richtig so. Ich habe die Funktion für andere Zwecke verwendet und sie mechanisch hierher übertragen.
//---не давать коду советника работать в пятницу с 18-00 по серверному времени 
   if(DayOfWeek()==5 && Hour()>=18){
      
      return(0);  
   } 
 
Können Sie bitte beraten, ob Sie einen Indikator schreiben können, in dem Linien in einem Zeitrahmen gezeichnet werden, und die Daten für seine Zeichnung wird von einem anderen Zeitrahmen genommen werden? der Zweck: um die letzte Bar Re-Drawing zu visualisieren. wie es zu tun?
 
lottamer:
Können Sie mir sagen, ob es möglich ist, einen Indikator zu schreiben, der Linien in einem Zeitrahmen zeichnet und die Daten für seine Zeichnung aus einem anderen Zeitrahmen nimmt? Der Zweck: die Neuzeichnung des letzten Balkens zu visualisieren.

Es ist elementar, Watson... Verwenden Sie in jedem Fall anstelle von Periode() PERIOD_M15 (der Zeitraum, von dem Sie Daten erhalten möchten)... Und setzen Sie den Indikator auf das aktuelle Diagramm. D.h., legen Sie zwangsweise den Zeitraum fest, aus dem Sie Daten nehmen wollen.
 
Sepulca:

Es ist elementar, Watson... Verwenden Sie in jedem Fall anstelle von Periode() PERIOD_M15 (der Zeitraum, aus dem Sie Daten abrufen möchten)... Und setzen Sie den Indikator auf das aktuelle Diagramm. Legen Sie also zwangsweise den Zeitraum fest, aus dem Sie Daten nehmen wollen.


Es wäre einfach, wenn ich einen Expert Advisor schreiben würde.

Aber es gibt einen Indikator, ich habe sie noch nicht geschrieben.

Ich habe mir als Beispiel eine Standard-Stochastik angesehen. Ich habe die Indikator-Fibel gelesen.

Ich habe noch nie etwas über Zeiträume gelesen. Es scheint zu bedeuten, dass die Balken in dem Zeitrahmen betrachtet werden, auf den der Indikator angewendet wurde.

dies ist der Grund für meine Frage.....

 
lottamer:


Das wäre einfach, wenn ich einen EA schreiben würde.

Aber es gibt einen Indikator, ich habe sie noch nicht geschrieben.

Ich habe mir als Beispiel eine Standard-Stochastik angesehen. Ich habe die Indikator-Fibel gelesen.

Ich habe nie etwas über Zeiträume gelesen. Es scheint zu bedeuten, dass die Balken in dem Zeitrahmen betrachtet werden, auf den der Indikator angewendet wurde.

Dies ist der Grund für meine Frage....


In der Standard-Stochastik:

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)

Wenn Sie Ihren eigenen Indikator schreiben, verwenden Sie int iBars( string symbol, int timeframe) anstelle von Bars

https://docs.mql4.com/ru/series/iBars

 
Sepulca:


In einer Standard-Stochastik:

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)

Wenn Sie Ihren eigenen Indikator schreiben, verwenden Sie int iBars( string symbol, int timeframe) anstelle von Bars

https://docs.mql4.com/ru/series/iBars


schien das Problem leicht zu lösen.

alle Balken durchiBars ersetzt(überint iB; iB=iBars("EUROUSD",PERIOD_M5);) Keine Fehler.

aber keine Karte. Es erscheint ein leeres Fenster.

Es fehlt eindeutig etwas.

Kann der Indikator 12 Linien auf einem Balken zeichnen, denn es gibt 12 Pentameter auf 1 Uhr, und jeder zeichnet seine eigene Linie.

 
lottamer:


Das Problem schien leicht zu lösen zu sein.

alle Balken durchiBars ersetzt(überint iB; iB=iBars("EUROUSD",PERIOD_M5);) keine Fehler.

Aber keine Tabelle. Es erscheint ein leeres Fenster.

Es fehlt eindeutig etwas.

Kann der Indikator 12 Linien auf einem Balken zeichnen? z.B. gibt es 12 Pentameter auf 1 Uhr und jeder zeichnet eine eigene Linie.


Das Gleiche gilt für Close - iClose, Open - iOpen, Time - iTime Volume - iVolume, usw.

Der Indikator kann bis zu 8 Linien von 0 bis 7 zeichnen https://docs.mql4.com/ru/customind/indicatorbuffers.