Hozzászólások
-
SzerzőBejegyzés
-
Hozzászólás: GMT beállítása hogyan? #1500
Szerintem próbáld ki az FXTGMTOffset: 2 -t, a többit hagyd auto -n.
Hozzászólás: for ciklus #1464Má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.
Hozzászólás: for ciklus #1460Ha 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 :)
Hozzászólás: Fájlba írás #1458Nincs mit, örülök hogy segíthetek!
Hozzászólás: Fájlba írás #1456A 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.csvA 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.
Hozzászólás: include beillesztés #1451Az #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 }
Hozzászólás: Pontos Cross Kód #1449Az 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.
Hozzászólás: Ex4 konvertálás Mq4 -be #1445Ingyenest nemigazán. A google-ben ex4tomq4-re keresve találsz szolgáltatásokat, talán lesz ingyenes is köztük.
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!
Hozzászólás: 1 perces gyertyákból leképezni a többi idősíkot #1437Jómagam nem tudok ilyen szkriptről sajna. Természetesen meg lehet csinálni, de adni nem tudok neked ilyesmit.
Hozzászólás: 1 perces gyertyákból leképezni a többi idősíkot #1428Bocsi, 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!
Hozzászólás: Adatok letöltése Dukascopy oldaláról – hogyan? #1427Szia!
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!
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.
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.
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.
-
SzerzőBejegyzés