Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › ObjectCreate
Címkézve: indikátor, objektumok
-
SzerzőBejegyzés
-
Szia Radu!
OBJ_HLINE vonalakat szeretnék létrehozni experttel/indikátorral amikor a charthoz csatolom úgy, hogy ne várjon thicket hanem egyből jelenjen meg. Amennyiben kézzel odébb húzom a vonalakat és idősíkot váltok, ne ugorjanak alapértelmezett szintre de ha eltávolítom az expertet a chartról akkor tűnjenek el a vonalak. Ha véletlenül letörlöm kézzel a vonalat, akkor az első thickre rajzolja újra alapértelmezett szintre.
valami ilyesmi:
int init()
ObjectCreate…
int deinit()
ObjectDelete („xy”); itt gondok valamilyen trükkre, hogy ne törölje idősík váltáskor is
int start()
if (ObjectFind(„xy”) == -1) ObjectCreate…Az ObjectDelete deinit-ben teljesen jó megoldás. Az idősíkváltásnál a törlés elkerülésére az UninitializeReason() függvény lehet a segítségedre, amely alapján lekérdezhető hogy a legutóbbi init-deinit oka mi volt pontosan.
Annyit csinálj meg, hogy a függvény visszatérési értékét megnézed;ha az értéke eltér a REASON_CHARTCHANGE -től, akkor mehet a törlés.
Az objektumrajzolásra érdemes saját függvényt létrehozni, amely megfelelően paraméterezve a későbbi fejlesztéseidet egyszerűsíti le.
Köszönöm, működik :)
Kellemes Karácsonyt és Boldog Új Évet kívánok!
Hello Radu!
for(i=1;i<=20;i++){ if(iHigh(Symb,PERIOD_D1,i)-Bid<=0.0015){ bool Ellenállás_D1=True; ObjectCreate("Ellenállás_D1",OBJ_HLINE,0,iTime(Symb,PERIOD_D1,i),iHigh(Symb,PERIOD_D1,i),0,0,0,0); ObjectMove("Ellenállás_D1",0,iTime(Symb,PERIOD_D1,i),iHigh(Symb,PERIOD_D1,i));}}
Problémám a következő: Visszafele számolva valamiért a 20.gyertya high értékéhez teszi a vonalat.
Azt szeretném megoldani, hogy a 20 megvizsgált gyertya küzül ahoz tegye amelyiknek a legközelebb van a high értéke az éppen aktuális piaci értékhez képest. (0.0015 pippen belűl)Válaszodat előre is köszönöm!
Nem igazán értem a programod logikáját, de a lényeg:
- keresd ki iHighest(Symbol(), Period(), MODE_HIGH, 20, 1) segítségével a legmagasabb gyertyát
- a gyertya high értékét (iHigh) vond ki az aktuális árból, így megkapod hogy a legmagasabb pont 15 pipen belül van-e
- utána rajzolj objektumot
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.