Zimanê algorîtmîkî QPILE ji bo bernamekirina robotên bazirganiyê yên ji bo QUIK.
Robotên bazirganî dikarin bi zimanek taybetî, mîna koda bernameyê, bêne nivîsandin. QPILE yek ji wan e, gotar dê vî zimanî binirxîne, zimanên QPILE û
LUA bide ber hev , û di heman demê de nimûneyên robotan ên bi vî zimanî jî bide.
- Agahdariya gelemperî li ser QPILE
- Bi tabloyê dixebitin
- QPILE ava dike
- Cureyên daneyan
- Expressions
- Functions
- bernameyên Debugging
- QPILE an LUA?
- Meriv çawa li ser QPILE robotek bazirganiyê biafirîne?
- Robotên bazirganiyê li ser QPILE – çareseriyên amade
- Robotê navîn diherike
- N. Moroshkin calculator helwesta
- Parzûna Volume
- Vebijêrkên Yewnanî
- Robotê bazirganiyê TRIX ji bo QUIK
- M4 Preprocessor
Agahdariya gelemperî li ser QPILE
QPILE kurtenivîsek e ku tê wateya QUIK Navbera Bernamekirî û Jîngeha Mantiqê.
Ev rêzek ferman e ku ji hêla stasyona xebatê QUIK ve hatî şîrove kirin. Ew bi gelemperî ji bo hesabkirina bihayê portfoliyoyên ewlehiyê tê bikar anîn. Ev ziman jî ji bo:
- ji nû vehesabkirina dînamîk a bihayê hebûnên xerîdar li ser sermaseya broker û di portofolên wan de. Di rewşa paşîn de, bihayê giştî ya wan jî ji nû ve tê hesibandin;
- dîtina nîşaneyên wenda bi karanîna algorîtma û daneyên xwe yên ji bo deyndana marjînal;
- pêşxistina stratejiya bazirganiyê ya rast.
Ziman avahiya tabloyê diyar dike: danîna stûn û rêzan, formul. Di vê paşîn de, operasyonên matematîkî, guhêrbar, daneyên ji tabloyên din dikarin ji bo hesabkirinê werin bikar anîn. Koda bernameyê ku ji servera QUIK an ji dîska bikarhêner hatî barkirin ji hêla wergêra zimanî ve tête hilberandin, ku nirxan di formulan de hesab dike. Tabloyên yek bernameyê yek çavkaniyek daneyê heye, lê hesab nayên dubare kirin û bandorê li karbidestiya pergalê nakin. Dema ku bi tabloyên QUIK re dixebitin, tabloyên li ser QPILE fonksiyonên standard hene. QUIK di cîhê xebatê de bi debugerek koda QPILE ve tê saz kirin. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Ziman destûrê dide te ku hûn tabloyên nû bi avahiyek diyarkirî vebêjin, şaneyên bi hin nirxan ronî bikin, zeviyan li gorî vegotinên matematîkî û mentiqî hesab bikin. Bikarhêner dê di forma îşaretek deng an peyamek nivîsê de agahdariyan werbigire. Tabloyên li ser QPILE dikarin bi navgîniya servera ODBC û DDE ve werin sererast kirin, çapkirin, kopîkirin, derxistin. Daneyên destpêkê ji tabloyên QUIK ne:
- danûstendinên, di nav de ji bo darvekirinê û neşexsî;
- ferman, di nav de fermanên rawestandinê, ji bo kirrûbirra û fermanan – raporên ji bo kirrûbirên di danûstandinên niştecîbûnê de;
- “portfolio xerîdar”, “kirrîn/firotin”
- daneyên ji pozîsyonên beşdaran ji hêla drav, hesabên bazirganî, amûr.
Tabloyên li ser bingeha QPILE ne dikarin bi navgîniya menuya kontekstê ve li pelek nivîsê werin kopî kirin û ji pergalên analîza teknîkî re bêne şandin, û nexşe li ser bingeha wan nayên pêşve xistin. Tabloyên li ser QPILE-ê nayên fîltrekirin an rêzkirin.
Bi tabloyê dixebitin
Ji bo barkirina koda bernameyê, hûn hewce ne ku menuya karûbaran, dûv re tîpên QPILE hilbijêrin. Her weha hûn dikarin tevliheviya Ctrl + F11 bikar bînin. Piştî ku hûn hewce ne ku “Add” bikirtînin û pelê xwestin hilbijêrin. Pêvekek wê ya .qpl heye û navê wê dê di navnîşa Nivîsarên Berdest de xuya bibe.
Ger di bernameyê de xeletiyek hebe, pergal dê di “Pencereya Peyamê” de agahdariyek çêbike, ku tê de navê pelê xerabûyî û jimareya xeta bi xeletî vedihewîne. Heke di pelê de xelet nehatin dîtin, dê daneyên jêrîn di qadan de bêne destnîşan kirin:
- navê maseyê;
- hejmara stûn û xerîdar;
- navnîşa nasname û xerîdaran;
- navnîşa pîvanan û koda çavkaniyê ya pelê.
Bişkoka “Daxistina herêmî” dê bihêle ku hûn tabloyê ji pelek bistînin, û “Daxistina serverê” dê bernameyê ji serverê re bişîne da ku hemî bikarhêner karibin bigihîjin wê. Ji bo çêkirina tabloyekê, bikirtînin Create Table. Di “Skrîptên Berdest” de bernameya ku hûn hewce ne ku bicîh bikin hilbijêrin, bi navgîniya “Parzûna xerîdaran” hejmara rêzan bicîh bikin, stûnên pêwîst û rêza wan diyar bikin.
Rawestandin û destpêkirina hesabkirinê, ji nû ve destpêkirina hesabkirinê û di moda debugê de, tomarkirina ravekirinê li pelek, nîşankirina formula, û pîvanên skrîptê di menuya çarçoveyê de hene.
QPILE ava dike
Cureyên daneyan
- String – string.
- Double jimareyek xala herikînê ye.
- Berhevkirin – berhevokek.
- Nexşe – rêzek hevgirtî – rêzek cotên ku destûrê dide te ku hûn bi kilîtê agahdarî bistînin.
Expressions
Operasyonên hejmarî yên zêdekirin, jêkirin, pirkirin, dabeşkirin têne sepandin. Gotinên mantiqî “û”, “an”, wekhev, zêde, kêm, newekhevî, avakirina şertî “eger … hingê …” jî têne bikar anîn.
Functions
Fonksiyon dikarin li her cîhê bernameyê bi cih bibin û navên cûda hene. Bi tevahî, 18 komên fonksiyon û fonksiyonên matematîkî hene ku ji bo bidestxistina nirxên tablo û parametreyan, rêzikên hevgirtî, navnîşek tabloyan û karên din hene. Pola yekem:
- Fonksiyonên matematîkî yên ku dihêle hûn nirxa sinus, kosînus, tangent, cotangent argûmanê vegerînin, nîşana argumanê hesab bikin, jimareyek rasthatî biafirînin, hwd.
- Fermanên giştî : NEW_GLOBAL ji bo destpêkirina guhêrbarek gerdûnî û MESSAGE ji bo vekirina peyaman.
Fonksiyonên ku bi wan re bixebitin:
- Koleksiyonên tiştan (Collection) . Ew dihêlin ku hûn berhevokek nû biafirînin, hejmareke hewce ya hêmanan vegerînin, nirxên xwestinê biguhezînin an têxin nav xwe.
- Arrayên Hevgirtî (MAP) . Alîkarî ji bo afirandina û birêvebirina array.
- Pelan – bi pelên nivîsê re dixebitin, têketinek bernameyê diparêzin. Navê pelê dibe ku riya wê hebe.
- Strings .
- Graphs . Fonksiyon GET_CANDLE dike ku bigihîje daneyên şemalê û GET_CANDLE EX ji bo vegerandina rêzek hevgirtî.
- Applications . Afirandina fermanan û şandina wan ji bo pergala bazirganiyê.
- Tags . Avakirin û sazkirina wan li ser nexşeyê. Zêdekirin, jêbirina yek an hemî etîketan, wergirtin û danîna parametreyên ji bo etîketek taybetî.
Her weha fonksiyonên ji bo:
- Ji bo gihîştina rêzên tabloyên QUIK yên keyfî û navnîşên parametreyên berdest . Gihîştina daneyên tabloya cîhê kar. Di nav wan de GET_ITEM heye bo vegerandina MAPê û GET_NUMBER_OF ji bo vegerandina jimareya têketinê.
- Ji bo xebatê bi tabloyek bernamekirî . Van fermanan li ser tabloya OWN kar dikin. Ew ji hêla fonksiyonên standard ên paragrafa berê û ji hêla van fonksiyonan ve tê xwendin. Di vê komê de emrên ji bo lê zêdekirin, guherandin û jêbirina rêzek bi indexek, û bi tevahî paqijkirina tabloya OWN dihewîne.
Ji bo bidestxistina nirxan bikar bînin:
- Tabloyên bazirganiyên heyî . Bi karanîna fermanên GET_PARAM (_EX) parametreyên agahdariya danûstendinê digirin.
- Quote windows . Bidestxistina nirxê quotes amûrê.
- Tabloyên pozîsyonan li gorî amûr û drav . Bi kodê daneyên li ser xerîdar, pargîdanî, amûrek, hesabê depoyê digirin.
Fonksiyonên karûbarê – vegerandina dîroka danişîna bazirganiyê ya heyî, rêzikên hevgirtî, tarîx û dema heyî, destnîşankirina rewşa girêdanê, qutkirina moda hesabkirinê.
bernameyên Debugging
Kontrola gav-bi-gav li ser xebata bernameyê di pencereya “Debug” de tête kirin. Ew ji pêşeka kontekstê “Destpêkirina hesabkirinê di moda debugê de” tê vekirin. Di heman demê de ew dikare bi fermana breakpoint() vebe, û rêza bernameyê dê bi sor were ronî kirin. Di pencereyê de qadên bi koda bernameyê û nirxên guhêrbar hene. Li binê pencereyê bişkokên “Gava paşîn”, “Daweşandina darvekirinê”, “Hesabkirinê rawestîne” hene. Zêdekirina F5 dê pêkanîna bernameyê bidomîne, kombînasyona Shift + F5 dê xeletkirinê rawestîne, bişkoka F10 dê berbi rêza din ve bibe.
QPILE an LUA?
LUA ji bo afirandina robotên bazirganiyê zimanek bernameyek nû ye. Mîna QPILE, ew di termînala QUIK de tête bicîh kirin. https://articles.opexflow.com/programming/lua.htm Malperek ku ji bo pêşkeftina robotên bazirganiyê yên ji bo bazirganiyê ve hatî veqetandin avantajên zimanê LUA li ser QPILE nîşan dide. Ji ber vê yekê, ew dikare wekî skrîpt û bytekodek ne-berhevkirî tevbigere, ku bi amûrên pêşdebir û mekanîzmayên bernamesaziyê yên objekt-oriented ve girêdayî ye. Tiştên ku bi zimanên din ên bernamesaziyê hatine nivîsandin dikarin bi bernameyên LUA ve werin girêdan. LUA 8 cûreyên daneyê, tevî metatables, peyda dike. Zimanê LUA pir-mijalek e, bilez e, û danûstandin û bûyerên termînalê asînkron in. LUA ji QPILE bêtir hevpar e, û gelek pêvekirin ji bo wê hatine nivîsandin.
Zimanê QPILE aniha nebihuriye. Pisporên li ser foruman karanîna LUA pêşniyar dikin. Tevî ku bernameyên kêrhatî û bi bandor hîn jî têne bikaranîn.
Lêbelê, zimanê QPILE li gorî LUA hêsan e, ji ber vê yekê heke we di bernamekirinê de ezmûnek tune, çêtir e ku hûn QPILE hilbijêrin. Di vî zimanî de, heke hûn hewce nebin ku hûn hesabên tevlihev bikin, hûn dikarin robotek hêsan binivîsin.
Meriv çawa li ser QPILE robotek bazirganiyê biafirîne?
Ji bo afirandina şêwirmendek bazirganiyê, hûn ê hewceyê bernameyên jêrîn bin:
- ITS Quik.
- Edîtorê kodê Notepad ++.
- Rêberiya QPILE.
- Pêveka XML ji bo tespîtkirina kodê di Notepad ++ de.
Van bernameyan daxin û saz bikin. Bi danîna userDefineLang.xml di riya C:\Bikarhêner\User\ AppData\Roaming\Notepad++\ de hevoksaziya ziman çalak bike
Pêşîn, bila em stratejiya bazirganiya jêrîn biafirînin. Divê skrîpt ji bo çend mûmên paşîn her hûrdem Hi û Kêm hesab bike, bihayê heyî ya amûrê kontrol bike. Ger nirxa amûrê bigihîje nirxa herî zêde an hindiktirîn a heyamê, pozîsyonek di riya hewce de tê vekirin. Dema ku sînyalek ji bo kurt tê wergirtin, pozîsyona dirêj bixweber tê girtin. Robot amûra GAZP-ê bikar tîne, dema çarçovê 1 hûrdem tête danîn. Kûrahiya pîvana hi-kêm li ser 5 mûman tê danîn. Ji bo têketina Dirêj, qaîdeyek tê danîn û hevberdana bihayê heyî ya nirxa herî zêde ya heyamê. Ger nirxa heyî ji nirxa herî kêm a van 5 mûman derbas bibe robot dê têkeve Kurt. Bi mîhengên bingehîn û dîrok û demjimêra serverê re blokek kodê di Notepad ++ de binivîsin. Ev kod di wêneya jêrîn de tê nîşandan.
4 rêzikên pêşîn ên kodê sernavê bernameyê pêk tînin. Di navbera rêzikên 6 û 44an de laşê bernameyê ye, ku naveroka robotê tê de ye. Rêzên 7 – 12 mîhengên bikarhêner hene, ku kodên amûr, kom û xerîdar, hejmara hesabê li ser MICEX-ê vedihewîne. Ev nirx di dema pêkanîna bernameyê de naguherin. Rêzên 13 – 16 nirxên destpêkê yên guherbaran in. Ew ê li ser her derbasbûna dubarekirinê ji nû ve werin vegerandin. Rêzên 17 – 21 nîşanek ji bo karanîna tarîx û demjimêra serverê vedihewîne. Ev dane ji fonksiyona DATETIME re derbas dibe û vediguhere forma nivîsê. Rêzên 22 – 29 daneyên wergirtî dişînin ser sifrê. Divê kod were hilanîn û dirêjkirina qpl were diyar kirin.
Bi tikandina Ctrl+F10 bernameyê bi QUIK vekin û pelê qpl-ya çêkirî hilbijêrin. Kombînasyona Ctrl+F11 bikar bînin da ku pencereya “Bi Portfolios re bixebitin” vekin û heyama hesabkirina portfolioyê li 5 hûrdeman destnîşan bikin. Ctrl+F12 bikirtînin da ku stûnan di tabloyê de nîşan bidin. Wêne encama xebata robotê nîşan dide.
Ka em çend kar û mercên din jî li bernameya xwe zêde bikin.
Bloka “Mîhengên Bikarhêner” bi guherbarên HEJMAR û INTERVAL ve tê dagirtin, ku dê di fonksiyona bidestxistina barkên N-ya paşîn de werin bikar anîn. Fonksiyona DATETIME tarîx û demjimêra serverê destnîşan dike, û fonksiyonên tarîx û demjimêra heyî CURDATE û CURTIME jê re têne gazî kirin. Dema niha di rêza 24’an de vediguhere jimarekê. Rêza 26 dema ku algorîtma ji 10:00:01 heta 18:40:00 UTC bimeşe destnîşan dike.
Bi gelemperî, nîşanker, oscilator, hesabên statîstîkî ji hêla N-yên paşîn ên nexşeyê ve têne hesibandin. QPILE ji bo berhevkirina hejmara mûman N serdemên berê wekî wusa fonksiyonek tune, lê fonksiyonek GET_CANDLE heye ku bi tarîx û demjimêr di forma nivîsê de xwe digihîne mûmanên li ser nexşeyê. Koda me fonksiyonê dihewîne ku N barên paşîn OHLC (). Ew bi pîvanên mûmanên paşîn ên ku di navnîşa COLLECTION de ne, berhevokek diafirîne. Bername nirxa INTERVAL-ê kontrol dike, û heke ew nekeve nav rêza 0…60, peyamek tê xuyang kirin ku nirx bi rêza destûr re nagunce. Di rêza 88-an de berhevokek MAP-ê ya bi mûman tê afirandin. Xalek FOR-ê ku nexşeyê bi kûrahiya hewce bi gavê INTERVAL-ê ji mûma nû berbi qendîlê vedikole. Di rêza 90-an de, piştî ku çerx tê ragihandin, robot navberek vedigere. Gava ku hûn bi GET_CANDLE mûmek bistînin, wê di berhevoka BARLIST de bi karanîna fonksiyona INSERT_COLLECTION_TEAM bi cîh bikin. Di encama xebata fermana OHLC() de, BARLIST bi mûmên paşîn ên ji nexşeya amûrê bi jimareya HEJMAR tê dagirtin. Hejmara hêmanên di berhevokê de bi fermana GET_COLLECTION_COUNT() tê xwestin û ji hêla guhêrbara BARCOUNT ve tê ragihandin. Dîroka pêşkêşker, dem, nirxên INSTRUMENT û BARCOUNT guhêrbar ji hêla fonksiyona SET_VALUE() ve di OUTPUT de têne ragihandin. Ev array bi fermana CREATE_MAP () ve hatî afirandin. Daneyên dikeve nav tabloya xwerû, ku di wêneya jêrîn de tê dîtin. Nirxên guherbarên INSTRUMENT û BARCOUNT ji hêla fonksiyona SET_VALUE() ve di OUTPUT de têne ragihandin. Ev array bi fermana CREATE_MAP () ve hatî afirandin. Daneyên dikeve nav tabloya xwerû, ku di wêneya jêrîn de tê dîtin. Nirxên guherbarên INSTRUMENT û BARCOUNT ji hêla fonksiyona SET_VALUE() ve di OUTPUT de têne ragihandin. Ev array bi fermana CREATE_MAP () ve hatî afirandin. Daneyên dikeve nav tabloya xwerû, ku di wêneya jêrîn de tê dîtin.
Robotên bazirganiyê li ser QPILE – çareseriyên amade
Robotê navîn diherike
Robotê demo ji bo bazirganiya rastîn ne maqûl e.
Robot 5 parameteran pêk tîne. Nirxên nasnavê DATE, TIME, PRICE di asta 30-an de têne danîn. Nasnameyên MOVING û TP bi rastbûna sifir têne danîn. Koda robotê li ser navgîniya tevgerê ku di bin QPILE de hatî nivîsandin: [stûnên galeriyê = “5” ids = “14896,14897,14898,14899,14900,14901,14902,14903,14904,14905,14906,14907”]
N. Moroshkin calculator helwesta
Bernameyek ji bo hesabkirina astên herî zêde vekişîna destûr û mebesta ji bo pozîsyonên dirêj û kurt bi bihayên daxwaz û pêşniyarên heyî. Asta ji bo 2 nirxên volga têketina pozîsyonê têne hesibandin. Robot dema ku fermanek rawestanê di yek gavê de ji bihayê vekirinê bi hesabkirina vekirina pozîsyonê di rêça mezinbûna bar de veqetandek pozîsyona destûr dide dibîne. Asta ku hatine dîtin têkevin pencereya termînalê, ku paşê di nexşeya bihayê de têne xuyang kirin. Danûstandin ji bo amûrek diyarkirî têne rast kirin. Ger pozîsyonek vebe, robot dest bi hesabkirina pîvanên xwe dike. Bi guheztina pozîsyonê ve girêdayî, fermanên hatine destnîşankirin têne sererast kirin.
Parzûna Volume
Robotê portfoliyoyê ji bo hesabkirina navîniya hejmarî ya qebareya mûman û berhevkirina wê bi hilbera navînî re ji hêla hevbera X ve. Di heyama dema hilbijartî de bi nexşeyên xêzkirî re rast dixebite.
Vebijêrkên Yewnanî
Portfolio ji bo hesabkirin û nîşandana “Yûnanan” ya vebijarkan. Ew ji rêbaza Black-Showers cuda ye.
Robotê bazirganiyê TRIX ji bo QUIK
Bername li ser bingeha nîşana TRIX-ê ye. Dema ku nîşanker li ser xeta sifir, asta diyarkirî, digire, robot pozîsyona Dirêj digire. Helwest ji hêla Take Profit, Stop Loss an rawestana paşverû ve tê girtin.
M4 Preprocessor
Bername ji bo xebatê bi QPILE û Lua. Arşîvên bi pelên îcrakar, belgekirin û pelên DLL yên bi parskirina birêkûpêk îfadeyê vedihewîne. Ji bo ku hûn bernameyê bikar bînin, hûn hewce ne ku pelên îcrakar vekin û regexp2 di riya C:\Windows de bi cîh bikin. Dersên li ser QPILE ji bo QUIK: https://youtu.be/vMTXwDUujpI Sazkirina skrîptekê li ser QPILE di termînala Quik de: https://youtu.be/0B7qL8Svh7I Beşek li ser github ku karanîna zimanê algorîtmîkî QPILE di nav de hatî çêkirin diyar dike. Qereqola xebatê ya pergala QUIK ku li ser girêdanê ye – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE zimanek kevnar e, lê ji bazirganên nû re jî pir hêsan û gihîştî ye. Robotên bazirganî û bernameyên ku ji demek dirêj ve xwe îsbat kirine berdewam dikin li ser wê dixebitin. Lêbelê, ji bo karên tevlihevtir çêtir e ku hûn LUA bikar bînin.
0к