Autorius | Žinutė |
2017-03-03 20:21 #505757 | |
Kad ir ne apie programavimą, bet apie grynai techninius dalykus. Žodžiu, dabar lyg ir savo VPS pavyksta neperkrauti, t.y. CPU usage jei ir pasiekia 100 proc., tai po sekundės dalių vėl beria žemyn. Bet kaip tik šiuo metu (minimum keletą minučių) laikosi 100 proc., ir net nepanašu, kad galėtų judėti žemyn, nors nieko naujo neinstaliavau. Ir kaip tik dabar kalba Dž. Yalen. Žodžiu, ar galėtų šita kalba padidinti CPU naudojimą, ir jei ne - tai kas tada daugiau galėtų būti priežastis.
|
|
2017-03-03 21:02 #505761 | |
Zinoma, kad gali. Vien jau MT4 duomenu srautas ir apdorojimas isauga. O dar ir veikiantys EA apkrauna CPU, EA atieka savo darba gaves kiekviena nauja ticka. Tai pvz ziurint i Volume pas Admiral 19val - 6731, tiek ticku, tiek kartu EA atliko savo darba. O 20val Volume jau virs 15000, tai beveik tris kartus daugiau. Nors pats didziausias kiekis ten ejo pacioje pradzioje, reikia ziureti i mazesnius TF. Pas mano Apple kompus irgi ventiliatoriai pradeda snioksti
The Power of Technical Analysis
Margin Call |
|
2017-03-03 21:32 #505765 | |
youngcat [2017-03-03 21:02]: O dar ir veikiantys EA apkrauna CPU, EA atieka savo darba gaves kiekviena nauja ticka. Ne kiekvieną, jei MT. Common sense is not very common
|
|
2017-03-03 21:42 #505771 | |
Na, tada reikės pagalvoti, galbūt šimtaprocentinį VPS CPU naudojimą tokių kalbų metu reikėtų priimti kaip neišvengiamą blogybę ir susitaikyti, kad tokiu metu latency teks skaičiuoti sekundėmis, o ne milisekundėmis. Užtektų kad 100 procentų ribos CPU usage nebūtų siekiama normaliomis rinkos sąlygomis.
O tai tada prekiaujant per naujienų skelbimą, Volume taigi iš karto tampa milžiniškas. Tai tada, kad sėkmingai pagauti staigų judėjimą reikia kad vienas terminalas su vienu instrumentu tūnotų didžiulio VPS kamputyje. Tik tokiu atveju, staiga šoktelėjus CPU naudojimui, VPS resursai nebus pereikvoti, ir nesigaus latency prailgėjimo. |
|
2017-03-03 22:33 #505780 | |
^la [2017-03-03 21:32]: youngcat [2017-03-03 21:02]: O dar ir veikiantys EA apkrauna CPU, EA atieka savo darba gaves kiekviena nauja ticka. Ne kiekvieną, jei MT. Kiekviena. As apie start() funkcija. Po kiekvieno naujo ticko EA priimineja sprendimus del tolimesniu veiksmu per start() funkcija. The Power of Technical Analysis
Margin Call |
|
2017-03-03 22:41 #505783 | |
Aš irgi apie start(). Ne kiekvieną. Nors mano žinios gali būti ir pasenusios. MQL paskutinį kartą krapščiau gal kokiais 2008.
Common sense is not very common
|
|
2017-03-03 22:45 #505784 | |
Panašu, kad nieks nuo to laiko taip ir nepasikeitė, nes na kam jums tas kiekvienas tick'as MT geriau žino, ko jums reikia.
https://www.mql5.com/en/docs/runtime/event_fire#newtick The NewTick event is generated if there are new quotes, it is processed by OnTick() of Expert Advisors attached. In case when OnTick function for the previous quote is being processed when a new quote is received, the new quote will be ignored by an Expert Advisor, because the corresponding event will not enqueued.
All new quotes that are received while the program is running are ignored until the OnTick() is completed. After that the function will run only after a new quote is received. The NewTick event is generated irrespective of whether automated trade is allowed or not ("Allow/prohibit Auto trading" button). The prohibition of automated trading denotes only that sending of trade requests from an Expert Advisor is not allowed, while the Expert Advisor keeps working. Common sense is not very common
|
|
2017-03-03 22:51 #505785 | |
Tu cia dabar rasai apie OnTick() Event'a, o as apie start() funkcija.
"In EAs, start() is called (and executed) immediately after a new tick comes." https://book.mql4.com/programm/special The Power of Technical Analysis
Margin Call |
|
2017-03-03 22:55 #505786 | |
youngcat [2017-03-03 22:51]: Tu cia dabar rasai apie OnTick() Event'a, o as apie start() funkcija. "In EAs, start() is called (and executed) immediately after a new tick comes." https://book.mql4.com/programm/special Dabar paskaityk kas toliau rašoma. Pacituosiu: In EAs, start() is called (and executed) immediately after a new tick comes. If a new tick has come during the execution of start(), this tick will be ignored, that is start() will not be called for execution when such a tick comes. All quotes received during the execution of start() will be ignored. Dėl to mano pažintis su MQL 2008 m. ir baigėsi. Common sense is not very common
|
|
2017-03-03 22:55 #505787 | |
In EAs, start() is called (and executed) immediately after a new tick comes. If a new tick has come during the execution of start(), this tick will be ignored, that is start() will not be called for execution when such a tick comes. All quotes received during the execution of start() will be ignored.
Jeigu tickas ateis kodo vykdymo metu. pvz. jeigu EA logika uzima laiko, nauji tickai per ta laika bus ignoruojami. Cia tikras shudas siaip. Normalios programulinos visus eventus stato i eile. Visi nauji tickai turi stot i eile. Reiskia norint pagaut daug maz visus tickus reikia daryt async programavima ir tai nebusi garantuotas. |
|
2017-03-03 23:01 #505788 | |
Čia visų pirma reikėtų pasakyti, kad ne visi brokeriai atiduoda pilną kotiruočių srautą. Visų antra, tai paties programuotojo reikalas, ką daryti su įeinančiu kotiruočių srautu. Bet mėgėjiški sprendimai, kaip Metatrader, tokio lankstumo apskritai nesuteikia.
Common sense is not very common
|
|
2017-03-03 23:05 #505789 | |
C# [2017-03-03 22:55]: Reiskia norint pagaut daug maz visus tickus reikia daryt async programavima ir tai nebusi garantuotas. Reikia naudoti tam pritaikytus sprendimus, o ne išradinėti dviratį su MQL. Common sense is not very common
|
|
2017-03-03 23:15 #505793 | |
Jeigu jus dabar jau ne apie issaukima start(), kuris vykdomas po kiekvieno ticko, o apie ignoravima, tai situacija tokia, kad esant normalioms rinkos salygoms, kai nesiunciama komanda i serveri, kai nenaudojama kokios nors delay funkcijos, kai kodas ne kilometrinis, kai neprikrauta 5x EA ir 100 indikatoriu terminale, ir CPU ne is ano simtmecio, tai spejamas apdoroti kiekvienas tickas.
Ar tikslinga butu statyti visus tickus i eile ir apdoroti - nezinau. Greiciausia kad ne. Nes cia aktualu kuo naujasni duomenys ir reikia kuo staigiau priimti sprendima buy, sell or nothing. Jeigu bus apdorojami visi i eile sustatyti tickai, tai bus tik velavimas su rinka. The Power of Technical Analysis
Margin Call |
|
2017-03-04 14:26 #505809 | |
Man atrodo, tamsta diskutuojate teoriniame lygyje ir kas kaip realiai veikia nesate bandęs. Aš esu bandęs ir teigiu, kad taip nėra. Bandymo rezultatas 2008 m. buvo toks, kad paprasčiausias start() { Print() } sugebėdavo atspausdinti tik kokius 5–6 tick'us per sekundę. Ir tai tik vienas instrumentas.
Dėl eilių naudojimo: ten kur reikia - jos naudojamos, ten kur nereikia - naudojami kiti sprendimai, leidžiantys apdoroti informaciją be reikšmingo vėlinimo. Common sense is not very common
|
|
2017-03-04 16:09 #505810 | |
Atsiprašau, jei parašysiu diletantiškai, tačiau, ar ne geriau būtų "visam tam dalykui" išskirti porą fizinių procesoriaus branduolių (ir kokius 8 virtualius - na žinote, tuos visus HT) nu ir tegul plėšosi tie visi terminalai ir EA ant skirtinių resursų. Su geru i5-i7 procesoriumi tai neturėtų būti sunku.
1. Godumą gydyk target`u, kvailumą - stop loss`u!
2. Konservai - tai toks blogas maisto pakaitalas. 3. Darbas durnių myli - WORK SMARTER, NOT HARDER! 4. Pem` štukų vagnorkių! 5. Mudu su Izabele... 6. Laukinis kapitalizmas nustekeno žmogiškąjį kapitalą. 7. Prie Niksono |
|
2017-03-04 17:25 #505812 | |
^la [2017-03-04 14:26]: Man atrodo, tamsta diskutuojate teoriniame lygyje ir kas kaip realiai veikia nesate bandęs. Kazkodel ta pati pagalvojau apie jus, keistas sutapimas. ^la [2017-03-04 14:26]: Aš esu bandęs ir teigiu, kad taip nėra. Bandymo rezultatas 2008 m. buvo toks, kad paprasčiausias start() { Print() } sugebėdavo atspausdinti tik kokius 5–6 tick'us per sekundę. Ir tai tik vienas instrumentas. Jei labai idomu, kiek ticku praignoruoja konkretus PC, tai reiketu ne printinti visus tickus, nes neaisku kiek dar laiko sugaistama sitai funkcijai ir neaisku kiek tu ticku konkrecioje sekundeje ir turejo buti (gal 5, o gal ir 7), o ideti skaitikli i start() fukcija, kuris suskaiciuotu kiek per minute si funkcija buvo issaukta ir tuomet palyginti su Volume. Jei HW greitas ir PC neapkrautas papildomais procesais, tai didziausias ticku praignoravimas turetu buti po to kai jau priimtas sprendimas nusiusti komanda i serveri ir laukiant jos ivykdymo. Bet situo momentu, gaunami ir praignoruojami tickai jau visiskai nesvarbus, nes sprendimas jau priimtas ir tik laukiamas patvirtinimas apie ivykdyma. Petras Kurmelis [2017-03-04 16:09]: Atsiprašau, jei parašysiu diletantiškai, tačiau, ar ne geriau būtų "visam tam dalykui" išskirti porą fizinių procesoriaus branduolių (ir kokius 8 virtualius - na žinote, tuos visus HT) nu ir tegul plėšosi tie visi terminalai ir EA ant skirtinių resursų. Su geru i5-i7 procesoriumi tai neturėtų būti sunku. Zinoma, jei taip aktualu, kad kuo greiciau veiktu Terminalai su tais EA, kad kuo maziau ticku praignoruotu, tai reikia spartinti Hardware, tai aktualu ir kitu programu veikimui kurios reikalauja greicio. Bet vistiek didziausias trukumas ne praignoruotuose tickuose, kurie neturi jokios praktines reiksmes, o ilgame kelyje tarp Terminalo ir brokerio serverio. The Power of Technical Analysis
Margin Call |
|
2017-03-04 19:07 #505819 | |
^la [2017-03-03 22:55]: In EAs, start() is called (and executed) immediately after a new tick comes. If a new tick has come during the execution of start(), this tick will be ignored, that is start() will not be called for execution when such a tick comes. All quotes received during the execution of start() will be ignored. Dėl to mano pažintis su MQL 2008 m. ir baigėsi. Dėl kelių tickų? Kokią reikšmę turi tie keli tickai, jei dirbama pagal TA. Nebent principo reikalas. O ką su tais tickais daryti, jei kompas užsiėmęs. Kai atsilaisvina, jau laukia nauji tickai, ir tie seni niekam nerūpi. Iš grafiko tai jie nedingsta. Fight like ukrainians
|
|
2017-03-04 19:22 #505820 | |
Nu viskas priklauso nuo strategijos, jeigu tikai yra naudojami kaip data streamas is kurio skaiciuojami tolesni sprendimai, tai reiskia kad tu prarandi duomenis. Jeigu jie naudojami tik kaip strategijos trigeris, tada gal ir nesvarbu. Arba kitaip tariant, jeigu uztenka M1+ OHLC duomenu ir nereikia ziuret intrabar, tai ok, galima tada ir apsieit.
"start() { Print() } sugebėdavo atspausdinti tik kokius 5–6 tick'us per sekundę" Print() siaip gali neblogai letint, bet toks rezultatas tikrai prastas. Norint suzinot tikra greiti, reik det tiesiai i atminti su datetime stampu be jokiu printu. Ir tada viska ismest i faila kur nors veliau. Bet aisku overall tas nesvarbu, jeigu reikalingi tikslus tickai. MT4-5 tam tiesiog netinka. "Iš grafiko tai jie nedingsta" Cia irgi dar klausimas i kuri reiketu atsakymo kaip jie ten dingsta ar nedingsta. Ar jis viska piesia is tu savo ticku, ar jis istorines zvakes sinchronizuoja su serveriu ir pan. Nes pvz. jei jis susyncina zvakes su serveriu po kiek laiko, tai gali istorinis vaizdelis biskeli pasikeist |
|
2017-03-04 19:44 #505822 | |
TicksTrade (default value: false) – this is an experts-only parameter, which activates execution on the trading logic on every price tick. By default, Wallstreet ASIA operates on M1 bar closing. All optimizations and tuning we made are based on M1 bar closing, so we do not recommend switching ON the TicksTrade mode, unless you are an expert capable in making your own 100% real tick tests and optimizations. However, the TicksTrade mode could provide very aggressive and profitable trading, but this depends a lot on the broker’s trading conditions.
http://fxprosystems.com/ea-asia/ Jeigu kalbant apie tai, kad terminalas apdoroja (ne)visus ticku'us, tai gal galite kas nors pakomentuoti, kas ta tikų prekyba. Gal kas esate tas ekspertas, kuris gebate daryti tuos 100 proc. realių tikų testus. |
|
2017-03-04 19:57 #505823 | |
"Gal kas esate tas ekspertas, kuris gebate daryti tuos 100 proc. realių tikų testus."
Tai ^la cia yra toks ekspertas su Tickiniu sertifikatu O jei rimtai tai reikia platformos ir data providerio tam. Platforma ir provideris gali but atskiri, gali but du viename. Pvz. TradeStation yra du viename. Su forexu yra problema - rinka decentralizuota. Kotiruociu srautai is skirtingu provideriu skirsis. |