PolarSeaman: Ich habe noch nicht herausgefunden, wie ich die Sekunden zählen kann, bis der Balken in der aktuellen Periode geschlossen wird. Ich brauche Ihre Hilfe.
Ja, aber der Code oben im Kommentar zählt jede Sekunde gleichmäßig herunter und die Funktion ist ruckelig. Auf M1 gibt es von 60 Takten 3 oder 4 Mal keinen Alarm.
Ja, aber der Code oben im Kommentar zählt jede Sekunde gleichmäßig herunter und die Funktion ist ruckelig. Auf M1 gibt es von 60 Takten 3 oder 4 Mal keinen Alarm.
Das liegt daran, dass die Funktion TimeCurrent() verwendet - die Ankunftszeit des letzten Zitats. Sie müssen diese Zeit durch eine lokale TimeLocal() mit einem berechneten Offset ersetzen (Sie wurden bereits darüber informiert).
Sie müssen diese Zeit durch eine lokale TimeLocal() mit berechneter Verschiebung ersetzen (Sie wurden bereits darüber informiert)
Ich weiß nicht, wie man es richtig zu tun, so fand ich einen Code, der Zeit zählt nach unten zu schließen H1 ohne Ticks, und versuchen, es zu verwenden, ersetztTimeCurrent() in Ihrer Funktion, aber es will nicht, mich Sekunden zu schließen zeigen.
#property strict#property indicator_chart_window//--- input parameters#define MILLISEC_TIMER_INTERVAL 500int timeOffset;
datetime ServerLocalOffset;
datetime prevTime,myTime,localtime;
bool newBar = false;
datetime sec;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingEventSetMillisecondTimer(MILLISEC_TIMER_INTERVAL);
datetime srvtime,tmpOffset;
RefreshRates();
srvtime = TimeCurrent();
// Modified
localtime = TimeLocal()+TimeGMTOffset();
if(TimeHour(srvtime)>TimeHour(localtime)){
// Server Time is still ahead of usint newOffset = TimeHour(srvtime)-TimeHour(localtime);
ServerLocalOffset = (newOffset*60*60);
}elseif(TimeHour(srvtime)<TimeHour(localtime)){
// Server Time is Behind usint newOffset = TimeHour(localtime)-TimeHour(srvtime);
ServerLocalOffset = (newOffset*60*60);
}else{
// No modification required
ServerLocalOffset = srvtime;
}
localtime = TimeLocal()-ServerLocalOffset;
tmpOffset = TimeSeconds(srvtime) - TimeSeconds(localtime);
if(tmpOffset < 30 && tmpOffset >= 0){
timeOffset = TimeSeconds(srvtime) - TimeSeconds(localtime);
}
return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason)
{
EventKillTimer();
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+//| Timer function |//+------------------------------------------------------------------+voidOnTimer()
{
//---datetime localtime;
localtime = TimeLocal()+(TimeGMTOffset()+(60*60));
sec=Time[0]+Period()*60-localtime-timeOffset;//if(SecondsToCandleClose(Symbol(),0)<=2){Alert("время откр. бара ",Time[0]);}
Comment(" Time 1: ",TimeToStr(sec,TIME_SECONDS )," Time 2: ",TimeToStr(SecondsToCandleClose(Symbol(),0),TIME_SECONDS ));
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+long SecondsToCandleClose(conststring symbol_name,constENUM_TIMEFRAMES timeframe)
{
datetime array[];
return(CopyTime(symbol_name,timeframe,0,1,array)==1 ? PeriodSeconds(timeframe)+array[0]-sec : 0);
}
////
Dann ist das Signal zyklisch. Und selbst wenn keine Aufträge eröffnet wurden. Die Idee ist, dass 1) die Aufträge offen sind 2) es jetzt keine Aufträge gibt 3) 1 Alert
Ich habe noch nicht herausgefunden, wie ich die Sekunden zählen kann, bis der Balken in der aktuellen Periode geschlossen wird. Ich brauche Ihre Hilfe.
Ich habe Ihnen die Funktion genannt.
Ich habe Ihnen die Funktion genannt.
Ja, aber der Code oben im Kommentar zählt jede Sekunde gleichmäßig herunter und die Funktion ist ruckelig. Auf M1 gibt es von 60 Takten 3 oder 4 Mal keinen Alarm.
Ja, aber der Code oben im Kommentar zählt jede Sekunde gleichmäßig herunter und die Funktion ist ruckelig. Auf M1 gibt es von 60 Takten 3 oder 4 Mal keinen Alarm.
Das liegt daran, dass die Funktion TimeCurrent() verwendet - die Ankunftszeit des letzten Zitats. Sie müssen diese Zeit durch eine lokale TimeLocal() mit einem berechneten Offset ersetzen (Sie wurden bereits darüber informiert).
Sie müssen diese Zeit durch eine lokale TimeLocal() mit berechneter Verschiebung ersetzen (Sie wurden bereits darüber informiert)
Ich weiß nicht, wie man es richtig zu tun, so fand ich einen Code, der Zeit zählt nach unten zu schließen H1 ohne Ticks, und versuchen, es zu verwenden, ersetztTimeCurrent() in Ihrer Funktion, aber es will nicht, mich Sekunden zu schließen zeigen.
Können Sie mir bitte sagen, wie ich diese Idee im Code umsetzen kann?
If (OrdersTotal ==0) {Alert ;}
Leute!
Das Diagramm enthält eine Vielzahl von Objekten.
Aber wenn Sie darauf zugreifen.
Hier steht, dass es nur drei sind.
Warum werden die Pfeile nicht gezählt?
Bitte sagen Sie mir, wie ich die Idee im Code umsetzen kann:
Gehen Sie folgendermaßen vor. Der Code ist fast korrekt. Nur ein Wort fehlt dort:
Leute!
Das Diagramm enthält eine Vielzahl von Objekten.
Aber wenn Sie darauf zugreifen.
Hier steht, dass es nur drei sind.
Warum werden die Pfeile nicht gezählt?