Hozzászólások

15 bejegyzés megtekintése - 616-630 / 651
  • Szerző
    Bejegyzés
  • Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Szerintem próbáld ki az FXTGMTOffset: 2 -t, a többit hagyd auto -n.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: for ciklus #1464

    Már értem a kérdésed.

    Sajnos ilyen megoldást nem tudsz elkövetni, mégpedig amiatt hogy az MQL4 nyelvben nincsen lehetőséged a változónévben (változót használni (pl. PHP-ben van). Ezutóbbi megállapításból természetesen csak a tömbök képeznek kivételt, hiszen ott a kulcsokra lehet hivatkozni változóval.

    A tomb[0, q] megoldás még működik, de a fixen elnevezett változók (a1, a2, stb.) nem tehetőek dinamikussá.

    A következő megoldást tudod alkalmazni: a fejlécben létrehozol egy adattömböt, amit init-ben feltöltesz a string adataiddal (kézzel kell sajna mind a 38 sort megadnod).

    Tehát fejlécben:

    string
       adattomb[38];

    Init-ben:

    adattomb[0] = a1;
    adattomb[1] = a2;
    adattomb[2] = a3;
     
    // satöbbi

    Mivel ezután már dinamikusan használhatod a 38 adatodat, meg tudod oldani a feladatod az egyébként jól indult megoldásoddal.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: for ciklus #1460

    Ha leírod pontosan a feladatot, lehet hogy könnyebben átlátom mit szeretnél.

    A fenti kód alapján sejtelmem sincs, mi a végcél :)

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Fájlba írás #1458

    Nincs mit, örülök hogy segíthetek!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Fájlba írás #1456

    A legfontosabb, hogy fájlnévben nem lehet kettőspont.

    A második legfontosabb, hogy stringeket a StringConcatenate eljárással tudsz összefűzni. A kettőspontok helyett használhatsz szünetet vagy kötőjelet.

    string
       fajlnev = StringConcatenate(TimeToStr(TimeCurrent(), TIME_DATE), " ", Hour(), "-", Minute(), "-", Seconds(), ".csv");

    A stringben végeredményként ez lesz:
    2011.01.02 22-0-26.csv

    A StringConcatenate -nek egyszerűen úgy add meg a paramétereket, mint ahogy a Print() esetében tennéd (max. 64 darabot).

    A Print esetében sokan használják a + (plusz) jelet, de a dokumentáció azt írja, hogy a StringConcatenate alkalmasabb a feladatra.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: include beillesztés #1451

    Az #include esetében meg kell adnod, hogy mit (melyik fájlt!) akarsz include-olni. Honnan tudná a program, hogy te az s.mqh -t akarod behívni?

    Illetve az általad hivatkozott s() egy függvény, amire – mivel nem létezik – hibát ír ki a program.

    A következő a helyes megoldás:

    w.mq4 -be rakd be a következőt (a fejrészbe, például az extern változók alá):

    #include <s.mqh>

    A relációs jeleknél nincs szünet, csak a fórum miatt voltam kényAz s.mqh -ban lévő kódot pedig úgy tudod használni, mintha a a w.mqh -ban lenne. Az includeolt fájl nevének semmi köze nincs a használható függvények (eljárások) neveihez.

    Azaz ha te s() függvényt keresel, akkor valamely általad használt fájlban kell hogy legyen egy definiált függvény. Például:

    void s () {
    // visszatérés nélküli, s nevű függvény amelynek egy paramétere sincs
    }
    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Pontos Cross Kód #1449

    Az első kérdés kapcsán jó volna látnom az indikátort. Még az is lehet, hogy maga az indikátor szar és te mindent jól csinálsz.

    A második kérdés kapcsán: rakd el minden tickhez tartozó indikátori értéket. A legelső tick az gyakorlatilag a gyertya nyitóára, szóval azzal kapcsolatban extra dolgot nem kell tenned.
    A második ticknél pedig hasonlítsd össze a kettőt.

    A tickek darabszámát a Volume értékek őrzik (Metatrader alatt; egyébként ez az érték a kereskedési mennyiségekre vonatkozna).

    Tehát: minden tickben lekérdezed az indikátor aktuális értékét – mondjuk egy CurrentValue változóba. Eközben van egy feltételed, ami csak akkor teljesülhet ha Volume értéke 1. Ekkor a CurrentValue értékét – még mielőtt feltöltenéd az aktuális tickhez tartozó indikátori értékkel – elrakod egy PrevValue -változóba. Ezután már csak megvárod if (Volume == 2) feltétel teljesülését, és itt azt csinálsz ezen belül amit akarsz.

    PrevValue értéke az init után legyen -1, amit persze ellenőrzöl a Volume == 2 feltételben is, hiszen ha pont úgy sikerül elindítanod a robotot hogy a PrevValue -nak még nincs értéke, akkor nem lesz jó az adatod. Ilyen esetekben várj a következő gyertyáig.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Ingyenest nemigazán. A google-ben ex4tomq4-re keresve találsz szolgáltatásokat, talán lesz ingyenes is köztük.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Színezés #1444

    Az Alert() egy nagyon fapados funkció – nincs lehetőséged színezésre vagy bármilyen formázásra.

    Formázott szöveg megjelenítésére kizárólag a charton van lehetőség, itt keresgélj!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Jómagam nem tudok ilyen szkriptről sajna. Természetesen meg lehet csinálni, de adni nem tudok neked ilyesmit.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Bocsi, most láttam hogy itt van ez a kérdés megválaszolatlanul!

    Első körben azt javasolnám, hogy F2-vel lépj be a Múltbéli adatok ablakba a Metatraderen belül. Válaszd ki a megfelelő instrumentum 1 perces idősávját, aztán töröld ki a „gyári” adatokat és kattints az Import gombra. Válaszd ki a fájlt, elválasztónak a vesszőt és kapcsold ki a mennyiség pipát. Ilyet még egyáltalán nem csináltam, de szerintem működni fog.

    Ha ezzel megvagy, akkor minden Meta installációban alapból van egy period_converter nevű szkript. Nyiss egy olyan M1 chartot, amilyet konvertálni akarsz és a Szkriptek közül helyezd a chartra a period_converter nevűt! Egy paramétert kérdez meg, az pedig az „ExtPeriodMultiplier”. Itt mindig olyan számot adj meg, ami az aktuális 1 perces adataidat „felszorozza” más idősíkokká.

    Így például:
    M1-ből M5-höz => 5
    M1-ből M15-höz => 15
    M1-ből M30-hoz => 30
    M1-ből H1-hez => 60
    M1-ből H4-hez => 240

    És így tovább.

    Majd értesíts, hoyg működik-e a dolog. A gyári adatokat minden olyan idősíknál töröld ki, amelyre generálni akarsz!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Szia!

    Semmi gond, most már jó helyen vagy! Nem volt a fórumlista kirakva, most már ezt is pótoltam.

    A webes letöltés esetén – mivel flash alapú letöltőről van szó – szerintem egy ideiglenes könyvtárba tölt. Függhet a böngészőtől is. Arra figyelj, hogy legyen sok gigányi helyed a letöltés megkezdése előtt a partíciókon.
    Firefox esetén az about:cache beírása talán segíthet megkeresni a könyvtátat.

    Nagy valószínűséggel egyébként a Users (Felhasználók) könyvtáron és a felhasználóneveden belül, az Application Data-ban, C:\Users\myusername\Appdata\Local\Temp -ben, vagy a rendszer fő ideiglenes mappájában lesznek a fájlok.

    Ezutóbbi helyét úgy tudod kideríteni, hogy:
    1) kerítsd elő a Rendszer tulajdonságait
    2) kattints a Speciális fülre
    3) kattints Környezeti változók fülre
    4) keresd ki a TMP és TEMP változók helyét.

    Alapbeállításként tudomásom szerint a C:\Windows\Temp szokott lenni.

    A robotok kapcsán küldtem e-mailt!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Új fórum #1414

    1. Megnyitsz 4 ugyanolyan instrumentumú chartot, és egyenként átállítod őket a kívánt idősíkokra. A többi instrumentummal is hasonlóan jársz el.
    A végén bal gombbal kattintasz a terminál státuszsorában a profilt jelző szövegen (alapértelmezésként például „Default”), és Profil mentése másként.
    Az ebben a profilban végzett módosítások (chart ablakok, robotok, indikátorok) folyamatosan mentésre kerülnek.

    2. Ha jól értem a kérdésed, megjegyzést szeretnél adni a pozíciódnak. A Megbízás panelen a Megjegyzések sorba írhatsz kommentárt, amely a pozíciók listájában fog megjelenni. Ott jobb kattintás után engedélyezd a „Megjegyzések” sort.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: OrderCloseBy invalid #1412

    „És ennek megnyílása esetén tök mindegy merre megy az árfolyam, az aktuális profit/veszteség az adott mennyiségre nézve fix marad.”
    Ez rendben van, de ez csak abban az esetben igaz, ha a két pozíció lotmérete megegyezik.

    Te az elején részzárásról is beszéltél, engem ez kavart meg.

    A STOP megbízások kapcsán természetesen igazad van, elnéztem.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: OrderCloseBy invalid #1409

    Érdekes, amit leírtál.

    Én azt gondolom, hogy ha egy 0.2 méretű BUY pozíciód pluszban van, és te egy ellentétes pozíciót nyittatsz 0.1 értékben – egy függő megbízással (SELL LIMIT és BUY LIMIT kell, nem STOP megbízások!), akkor amikor az teljesül, akkor csak a jó irányba van biztosítva 0.1 BUY pozíció profitja (oda meg tök felesleges a 0.1-es buy, hiszen negatív profitot generál! Minek?!)

    Amennyiben az árfolyam visszatesztel, semmi nem véd meg attól, hogy a két pozíció összprofitja negatívvá váljon lévén hogy a BUY pozíció visszafordulása esetén annak a negatív profitján a SELL pozíció maximum csak tompít.

    Így nemigazán értem, hogy a fenti konfigurációnak mi lehet az előnye, ráadásul még az OrderCloseBy-jal is szenvedni kell.

    Lehet, hogy én nem értek valamit de a megoldásod abszolút nem segít se a profit megőrzésén, se egy sikeres pozíció bizonyos ponton történő megfelezésén, se a maradványpozi profitjának bebiztosításán.

    Oké, hogy a piaci zárások gyakran megbízhatatlanok, de azért korántsem annyira gáz a helyzet. Egy VPS szerver – jó áram- és internethozzáféréssel – igen sokat segíthet.

15 bejegyzés megtekintése - 616-630 / 651