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

 
ara66676:

Bitte helfen Sie mir, ich kann keine Antwort auf eine einfache Frage finden.

intTimeSeconds(,,,,,)Gibt die Anzahl der Sekunden wieder, die seit dem Beginn der Minute der angegebenen Zeit verstrichen sind.

Wenn ich die Öffnungszeit des Balkens in die Funktion

ZeitSekunden(iTime(NULL,PERIOD_M5,0))

Wie kann ich wissen, dass noch 10 Sekunden verbleiben, bevor sich der Balken schließt?

Ziehen Sie die verstrichene Zeit von der Anzahl der Sekunden in der Periode ab...

PeriodSeconds(PERIOD_M5) - TimeSeconds(iTime(_Symbol, PERIOD_M5, 0));



 
AlexeyVik:

Denn Sie müssen die Dokumentation ganz durchlesen. Und es gibt ein Beispiel darin

Danke! In dem Beispiel hat dieses"ArrayResize" meinen Kopf durcheinander gebracht. :)

In der Dokumentation halte ich die Klammern "array[]" für unnötig, da man aus dem Wort selbst entnehmen kann, dass es sich um ein Array handelt. :)

int  ArrayInitialize( 
   int     array,     // инициализируемый массив 
   int     value        // значение, которое будет установлено 
   );
 
AlexeyVik:

Ziehen Sie also die verstrichene Zeit von der Anzahl der Sekunden in einer Periode ab...



Vielen Dank, ich benutze mql4 seit fünf Jahren und wusste nicht, dass es eine solche Funktion gibt, nochmals vielen Dank ))

Leider hat es nicht geholfen, am fünften Tag funktioniert diese Prüfung nicht...((

 
if(id==CHARTEVENT_MOUSE_MOVE)
                                       {
                                       // получ и преобраз координ мыши
                                       ChartXYToTimePrice(0,lparam,dparam,huin,timeVline,priceVline);
                                       // переместить нa них линию
                                       ObjectSet(stockname+"timeVline",OBJPROP_TIME1,timeVline);                                     
                                              
                                        } 
Auf einem echten Diagramm, auf dem der Indikator von Anfang an läuft, funktioniert er, wie er sollte.
Ich kann nicht erkennen, was daran falsch ist, aber wenn ich den Indikator im Tester ausführe, bewegt sich die Linie nicht nach der Maus.
Ich weiß auch nicht, was die Variable namens Huin macht?
 
ara66676:

Vielen Dank, ich benutze mql4 seit fünf Jahren und wusste nicht, dass es eine solche Funktion gibt, nochmals vielen Dank ))

Leider hat es nicht geholfen, am fünften Tag funktioniert diese Prüfung nicht...((

Sie hätten also angeben müssen... Das Prinzip ist das gleiche.

TimeCurrent() - (datetime) SeriesInfoInteger(_Symbol, PERIOD_M5, SERIES_LASTBAR_DATE);


Sie können auch CopyTime() verwenden...


Nein... Das ist nicht der Fall.

(datetime) SeriesInfoInteger(_Symbol, PERIOD_M5, SERIES_LASTBAR_DATE) + PeriodSeconds(PERIOD_M5) - TimeCurrent():
 

GURUS SAGT MIR!!!! Warum wird ein Verkaufsauftrag nicht geöffnet????

//+------------------------------------------------------------------+

//| Projektname |

//| Copyright 2012, Firmenname |

//| http://www.companyname.net |

//+------------------------------------------------------------------+

#Eigenschaft streng

//+------------------------------------------------------------------+

Experteninitialisierungsfunktion //|

//+------------------------------------------------------------------+


Eingabe double L=0,01;

Eingabe int TakeProfit = 150;

Eingabe int StopLoss = 150;

Eingabe int Magic = 0;

//+------------------------------------------------------------------+

int b=0;

int s=0;

//+------------------------------------------------------------------+

int OnInit()

{

zurück(0);

}

//+------------------------------------------------------------------+

//| Experten-Tick-Funktion |

//+------------------------------------------------------------------+

void OnTick()

{

//+------------------------------------------------------------------+

//| Eröffnen Sie einen Kaufauftrag.

//+------------------------------------------------------------------+

if(b==0)

{

b=Mein_Fun_b();

}

//+------------------------------------------------------------------+

//| Verkaufsauftrag eröffnen

//+------------------------------------------------------------------+

if(s==0)

{

double priceb=My_Fun_p();

Comment("Der Preis des Kaufauftrags",priceb);

if(priceb==Bid) /*NICHT AUSGEFÜHRT WARUM*/.

{

s=My_Fun_s(priceb);/*NICHT AUSGEFÜHRT, WARUM//

}

}

}

//+------------------------------------------------------------------+

//| Experten-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

{


}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Funktion zur Eröffnung der ersten Bestellung (Kauf) |

//+------------------------------------------------------------------+

int My_Fun_b()

{

b=OrderSend(_Symbol,0,0.01,Ask,0,0,",414,0,clrBlue);

zurück(b);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Funktion zur Ermittlung des Preises für die erste Bestellung (Kauf) |

//+------------------------------------------------------------------+

double My_Fun_p()

{

double pb=0;

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true)

if(BestellMagischeZahl()==414)

{

pb=OrderOpenPrice();

}

zurück(pb);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Funktion zur Eröffnung der ersten Bestellung (Verkauf) |

//+------------------------------------------------------------------+

int My_Fun_s(double priceb)

{

s=OrderSend(_Symbol,1,0.01,priceb,0,0,",0,0,clrRed);

zurück(b);

}

//+------------------------------------------------------------------+


Dateien:
test.mq4  2 kb
 
AlexeyVik:

Nun, Sie hätten angeben sollen... Das Prinzip ist das gleiche


Sie können auch CopyTime() verwenden...


Nein... Es ist ein bisschen anders.

Danke, es hat funktioniert. Richtige Variante:

(TimeCurrent() - (datetime) SeriesInfoInteger (NULL , PERIOD_M5 , SERIES_LASTBAR_DATE))>290

Nochmals vielen Dank, jetzt können wir Berge von Code entfernen und diese Zeile verwenden!!! ))

 
ara66676:

Danke, es hat funktioniert. Richtige Variante :

(TimeCurrent() - (datetime) SeriesInfoInteger (NULL , PERIOD_M5 , SERIES_LASTBAR_DATE))>290

Nochmals vielen Dank, jetzt können wir Berge von Code entfernen und diese Zeile verwenden!!! ))

Offenbar spielte es keine Rolle, ob es sich um die verstrichene Zeit seit der Öffnung der Bar oder um die Zeit bis zum Ende der Bar handelte. Bei dieser Variante wird genau die verstrichene Zeit vom Beginn des Taktes an angegeben und nicht die Zeit bis zum Ende des Taktes.

Und wie lautet die Zahl 290? Warum müssen wir auf mehr als 290 prüfen?

 
AlexeyVik:

Offenbar spielte es keine Rolle, ob es sich um die verstrichene Zeit vom Beginn des Balkens oder um die Zeit bis zum Ende des Balkens handelte. Diese Option würde genau die verstrichene Zeit vom Beginn des Taktes an angeben, nicht die Zeit bis zum Ende des Taktes.

Wie lautet die Zahl 290? Warum müssen wir auf mehr als 290 prüfen?

IN DIESEM FALL ZEIGT DIE ZAHL 290 AN, DASS SEIT DEM ÖFFNEN DES BALKENS MEHR ALS 290 SEKUNDEN VERGANGEN SIND. ENTSCHULDIGUNG FÜR DIE BILDUNTERSCHRIFT, SIE IST HÄNGEN GEBLIEBEN ))))
 

Kompilierfehler (2): Magic - nicht deklarierter Bezeichner

Bitte helfen Sie mir bei der Korrektur

bool CheckExists(int Typ)
{
bool Ergebnis = True;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderType() == Type && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderOpenTime() >= Time[0])
Ergebnis = False;
for(i = 0; i < OrdersHistoryTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderType() == Type &&& OrderOpenTime() >= Time[0]
&& OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
Ergebnis = False;
}

return(Ergebnis);
}