Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Függő megbízás adott időben › Válasz erre: Függő megbízás adott időben
Most, hogy átnéztem a kód részletet amit szíveskedtél leírni és részletezni, kicsit több tudással, újból kérdezek. Előbb egy tévedésemet szeretném kijavítani ami a GMT időt illeti (elnézést a pontatlanságért). Pont hogy a szerver nem GMT, (amúgy a TimeLocal nyilván nem, ha magyar időzónában fut az expertes gép) de a megbízások mindenképpen GMT idő szerint kell kikerüljenek. Ezért gondolom, hogy csak a TimeGMT függvénnyel lehet boldogulni, így nem használható a sima Hour() valamint a TimeLocal és TimeCurrent függvény sem.
A szemaforos megoldás valóban nagyon jó, egy kicsit meghaladja a tudásomat, ezért nem is fordult meg a fejemben.
Én egy ilyen kivitelezést készítettem:
// Ha ez a függvény lefutott, akkor törölt minden régi megbízást,
// és mehet a dolog a két új order irányába..ha nem járt le akkor meg majd a következő
// if miatt nem fog új ordereke elhelyezni
Lejart_az_Ido();
int Ora = TimeHour( TimeGMT() );
int Szerver_Ido = TimeHour( TimeCurrent( ) );
int Local_Ido = TimeHour( TimeLocal( ) );
// Ha "ütött az óra", azaz a GMT idő óra komponense megegyezik a megadott óra változóval,
// és nincsen sem OP_BUYSTOP sem OP_SELLSTOP akkor...
if( Ora == Entry_Hour && Buy_Stop_Darab == 0 && Sell_Stop_Darab == 0 )
{
Print( "TIME HOUR. GMT: ", Ora, " SERVER: ", Szerver_Ido, " LOCAL: ", Local_Ido );
Stop_Limitek_Elhelyezese();
}
Úgy találtam, hogy ezzel a megoldással leszűkül pont 1 órányira az az időperiódus, amíg kihelyezheti az ordereket. Egyébként ha mondjuk valamikor délután indítanám az expertet, akkor is nagyobb lenne az Óra komponens, így akkor is kihelyezné…