Címkézve: ,

5 bejegyzés megtekintése - 1-5 / 5
  • Szerző
    Bejegyzés
  • Tamás
    Tag
    Bejegyzések száma: 2

    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…

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    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.

    Tamás
    Tag
    Bejegyzések száma: 2

    Köszönöm, működik :)

    Kellemes Karácsonyt és Boldog Új Évet kívánok!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    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!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem igazán értem a programod logikáját, de a lényeg:

    1. keresd ki iHighest(Symbol(), Period(), MODE_HIGH, 20, 1) segítségével a legmagasabb gyertyát
    2. 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
    3. utána rajzolj objektumot
5 bejegyzés megtekintése - 1-5 / 5
  • Be kell jelentkezni a hozzászóláshoz.