TijdDagVanWeek. Bedankt. Bewerken: En het zal alleen echt van nut zijn op de daggrafiek.
TijdDagVanWeek. Bedankt. Bewerken: En het zal alleen echt van nut zijn op de daggrafiek.
Het is geen gemakkelijke taak als u balken wilt ondersteunen die lager zijn dan het dagelijkse tijdsbestek en veel (alle?) tijdzones.Originally Posted by ;
http://docs.mql4.com/dateandtimeOriginally Posted by ;
Ik zal de tijd die nodig is in een externe int stoppen en alles daaruit berekenen, dus met DST kan deze externe int eenvoudig worden gewijzigd en het zou correct moeten werken. Ik probeer iets te maken dat lijkt op een gemiddeld dagelijks waar bereik binnen, dus als de Hi en Lo worden geretourneerd op zaterdag en zondag, zou dit de binnenwaarden verhogen. bewerken: ik bedoel er een die alleen delen van de dag berekent, geen echt gemiddeld dagelijks waar bereik. De weekendwaarden zouden het zeker verknoeien. Is er iets dat DayOfWeek retourneert voor een balk? Voor zover ik weet kan dit niet op dezelfde manier worden berekend met StrToTime, tenzij ik alle weekenddatums invoer...
ibarshift() retourneert staafposities gegeven een specifieke tijd. Het houdt geen rekening met de tijd van de week. Zoals ik al zei, kun je het instellen om de dichtstbijzijnde balk te retourneren of -1 als de balk niet wordt gevonden.Originally Posted by ;
JaOriginally Posted by ;
U moet voor elke oproep de juiste tijd maken met behulp van StrToTime(). Bijv.: ingevoegde code int i, iMyBar; string sTijd; datumtijd tMijnTijd; voor (i=0;ilt;24;i ) { als (ilt;10) sTime=0 i :58; anders sTijd=i :58; tMyTime=StrToTime(sTime); iMyBar=iBarShift(Symbool(), 1, tMyTime); Commentaar(Bar Tijd= Tijd#91;iMijnBar#93; MijnTijd= tMijnTijd); }Originally Posted by ;
Zoals ik al zei, betrouwbaar controleren op weekenden kan niet triviaal zijn, afhankelijk van uw behoeften. Gebruik de datum-tijdfuncties. Het ligt eraan op welk niveau je het wilt doen. U moet beslissen: - welke tijdframes worden ondersteund. - welke tijdzones worden ondersteund. - hoe je omgaat met de overstap van DST.Originally Posted by ;
Ingevoegde code int MyBarNr; dubbele MyBarClose MyBarNr=iBarShift(Symbol(), 1, StrToTime(2012.3.6 10:58),True); MyBarClose=Sluiten#91;MyBarNr#93;;/met de huidige datum MyBarNr=iBarShift(Symbol(), 1, StrToTime(10:58),True); MyBarClose=Sluiten#91;MyBarNr#93;; De bovenstaande code retourneert de balk in M1 die overeenkomt met de gegeven tijd. Aangezien er staven kunnen ontbreken in een grafiek (geen vinkje tijdens een gegeven staaf = geen staaf op de grafiek), bepaalt de laatste parameter of de functie de dichtstbijzijnde staaf retourneert als de staaf ontbreekt of -1. Omgaan met ontbrekende bars en weekenden in verschillende tijdzones kan een grote taak zijn.
Bedankt voor het antwoord. Ik had de indruk dat ibarshift weekenden niet als bars telde. Dus ik kan net zo goed mijn eigen lus gebruiken om maten met een bepaalde tijd te vinden? Ook zal uw tweede voorbeeld elke dag werken? Dus het zal altijd de balk 10:58 vinden vanaf diezelfde dag? En dezelfde dag zou servertijd zijn? Wat als ik de balk elk uur op 58 minuten wil vinden? 10:58, 11:58, 12:58, etc zodat ik daar elk uur berekeningen op kan doen? Of hoe je elke dag 13:00 kunt vinden? Code ingevoegd voor {i=1;ilt;=stop;i ) { if (iTime(Symbol(),PERIOD_H1,i) == StrToTime(13:00) ) {shift = i;break;} } Enig idee hoe een cheque voor het weekend toevoegen?
Waarschijnlijk alleen een probleem met bucketshops. Hoe dan ook, het is toch maar 1 extra regel, dus het is geen probleem om het op te nemen om 100% veilig te zijn. En het zou geen fout veroorzaken in het weekend, het zou gewoon de waarden en eventuele handel als resultaat verknoeien, dus het is het beste om alles 100% nauwkeurig te hebben.