Худалдааны роботыг хэрхэн бичих вэ - шууд цэг рүү. Биржийн программ хангамж: Худалдааны робот бүтээх хэрэгслүүд


Сергей 2019-08-08 00:05 дээр бичжээ:
>Захиалга өгөх аливаа програм бичнэ. MEPhI-ийн 2 диплом (Москвагийн инженерийн физикийн хүрээлэн) - математикч, програмист. Мэргэжлийн програмчлалын 25 жилийн туршлагатай. Дэлхийн хэмжээнд нэр хүндтэй компаниудад олон жил гадаадад ажилласан дээд зэрэглэлийн мэргэжилтэн. С, С++, C#, Java, JavaScript, HTML, Pascal, Delphi, Visual Basic, Excell, Assembler, микроконтроллеруудад зориулсан Ассемблер хэл (AVR, PIC, x51, x80-86). Өгөгдлийн сан - ямар ч, үүнд Oracle, MS SQL Server, InterBase, DB2, Paradox, Access, FoxPro, клиент - сервер. ASSEMBLER микроконтроллерууд (бүх аялгуу) - 8080, 8085, Z80, x51, AVR, PIC, Arduino. Компьютерийн график 2D, 3D - OpenGL, DirectX. Аливаа түвшний нарийн төвөгтэй сайтуудыг бий болгох.

Сайн байцгаана уу. Би мөрийн хөтөлбөр бичих сонирхолтой байна.
Бооцооны дэлгүүрт автомат бооцоо тавих Bot програм
betfair биш. Хөтөлбөр нь хэд хэдэн үйлдлийг гүйцэтгэх ёстой бөгөөд бүх зүйл иймэрхүү харагдах ёстой.

1. Бид програм руу орж, товчлуурыг дарж, шаардлагатай тарифыг (урьдчилсан мэдээ) шуудангийн хаягаас задлан шинжилдэг (өдөр бүр шинэ захидал ирдэг). Магадгүй бид тэдгээрийг тусдаа цонх эсвэл програмын маягт дээр харуулах болно.

2. Хүлээн авсан бооцооны (урьдчилан таамаглал) дагуу програм нь эдгээр бооцоог автоматаар букмейкерийн хэд хэдэн дансанд тодорхой хугацааны интервалтайгаар тавьдаг.

3. Бооцооны дэлгүүрийн данс нэг эсвэл хэд хэдэн байж болно. Хамгийн тохиромжтой нь та програм руу дансаа оруулаад аль дансыг ашиглах, аль нь ашиглахгүй гэдгээ тэмдэглэж болно.

4. Бооцооны хоорондох хугацаа санамсаргүй байх ёстой, гэхдээ тохиргоонд заасан хязгаараас багагүй, ихгүй байна. Жишээ нь: интервалыг 1-ээс 5 секундын хооронд тохируулна. 1 бооцоо - boomz, хоёр дахь нь 2 секундын дараа, гурав дахь нь 3,6-ийн дараа, дөрөв дэх нь 1,7-ийн дараа гэх мэт.

5. Бооцооны оффисын сайтыг програмын хамт цонхонд задлан шинжилж, зөвхөн шаардлагатай мөр, шаардлагатай үйл явдлуудыг сонгох шаардлагатай. Үүнийг хэрхэн хэрэгжүүлэхээ мэдэхгүй байна, программист бодож олох ёстой. Юуны төлөө? Заримдаа урьдчилсан таамаглал дахь тодорхой багийн нэр нь букмейкерийн нэрээс ялгаатай байж болно. Тиймээс автоматаар бооцоо тавих боломжгүй болно. Бид цаашаа харж байна.

6. Гэсэн хэдий ч зарим бооцоо автоматаар тавих боломжгүй бол програм нь хэрэглэгчдэд аль болох хурдан гараар тавих боломжийг олгох ёстой. Тэдгээр. жишээлбэл, 10 бооцооны 8-ыг амжилттай тавьсан бол аль бооцоо хийгээгүй цонх гарч ирнэ - програмын хэрэглэгч шаардлагатай үйл явдлуудтай задлан шинжилсэн мөрийг аль хэдийн харж, нэг товшилтоор гараар тавьж болно. Тэдгээр. Хүссэн бооцоо дээр нэг удаа товшоод бүх данснаас бооцоо тавих болно.

7. Бооцооны хэмжээг тохиргоонд тохируулсан бөгөөд бүх бооцоонд ижил байна.

8. Ботыг ажиллуулах явцад магадлал, гандикапын хэмжээ (өөрөөр хэлбэл бооцооны өөрөө) эсвэл бооцооны дээд хэмжээ өөрчлөгдсөн бол: заримдаа энэ нь 1.9-аас 1.7 хүртэл буурч болно) b) бооцооны хэмжээ өөрчлөгдсөн тохиолдолд. handikap, хэрэглэгчдэд бооцоо болон шинэ хоцрогдол харагдахуйц шинэ handikap бүхий цонхыг өг. Та хамгийн их бооцоо өөрчилсөн тохиолдолд ACCEPT эсвэл CANCEL дээр дарж болно (жишээ нь 50-аас 0.01 хүртэл өөрчлөгдөж болно) N-ээс багагүй бол шинэ дүнг хүлээн авна уу (үүнийг тохиргоонд оруулах нь зүйтэй).
Магадгүй энэ нь шаардлагатай бүх зүйл биш, гэхдээ дор хаяж 90% байна. Хөгжүүлэлтийн явцад ямар нэгэн асуултыг тодруулна уу. Мэдээжийн хэрэг, энэ нь хөтөлбөрийг доош нь доош нь өөрчлөх шаардлагагүй, гэхдээ зарим сайжруулалт хийх шаардлагатай гэж бодож байна. Хамгийн тохиромжтой нь энэ нь гурван товшилттой програм байх ёстой: програмыг нээх, тендерийг задлан шинжлэх, тендер байрлуулах. Би МЭӨ вэбсайтыг программист өгөх болно, дараа нь би саван дээр үсэг ямар форматаар ирж, МЭӨ-ийн аль мөрийг задлан шинжлэх шаардлагатайг харуулах болно. Цаашид шинэчлэлт хийх боломжтой програмаа хөгжүүлээрэй, бид удаан хугацаанд хамтран ажиллах болно

Алгоритм арилжааг дөнгөж сонирхож эхэлж буй хүмүүсийн асуудаг хамгийн түгээмэл асуултуудын нэг бол "Үүнд хамгийн сайн програмчлалын хэл юу вэ?". Мэдээжийн хэрэг, "хамгийн сайн" сонголт байхгүй гэсэн товч хариулт юм. Хэрэгслийг сонгохдоо та арилжааны стратегийн параметрүүд, шаардлагатай гүйцэтгэл, модульчлагдсан байдал, хөгжлийн арга зүй, алдааг тэсвэрлэх шаардлагыг харгалзан үзэх хэрэгтэй. Энэ нийтлэлд бид алгоритмын арилжааны системийн архитектурын үндсэн бүрэлдэхүүн хэсгүүд, тэдгээр нь програмчлалын хэлийг сонгоход хэрхэн нөлөөлдөг талаар ярих болно.

Орчуулагчийн тэмдэглэл: Бид алгоритмын арилжааны талаар эргэлзэх хандлагатай байнга тулгардаг. Энэ бол туйлын хор хөнөөлтэй таамаглал бөгөөд техникийн мэргэжилтний хувьд үүнийг хийх нь энгийнээр хэлэхэд зүгээр л буруу зүйл биш гэж үздэг. Сэтгэгдэл дээр зарим асуулт гарч ирэх тул бид хөрөнгийн зах зээл дээр ямар төрлийн арилжаачид байдаг, яагаад тэд тус бүр нь тодорхой хэмжээний ашиг тустай байдаг талаар тайлбарлахад ихээхэн анхаарал хандуулсан материалын холбоосыг нэн даруй өгөхийг хүсч байна. цаг хугацааны цэг, түүнчлэн солилцооны өөрсдөө зорилгын талаар илүү ерөнхий сэдвийг хөндсөн сэдэв. Мөн энд та програмчлалын мэдлэгтэй хүн хагас сая доллар олох боломжийг олгосон ийм арилжааны туршлагын талаар уншиж болно (эхний хэсэг, хоёр дахь хэсэг.) Уншихад таатай байна!

Юуны өмнө бид алгоритмын арилжааны системийн үндсэн элементүүд болох аналитик хэрэгсэл, багцын оновчтой болгох, эрсдэлийн менежер, үнэндээ арилжааны хөдөлгүүр зэргийг авч үзэх болно. Дараа нь бид янз бүрийн арилжааны стратегийн онцлог шинж чанарууд, тэдгээрийн аль нэгийг нь сонгох нь бүхэл бүтэн системийн хөгжилд хэрхэн нөлөөлдөг талаар ярих болно. Ялангуяа бид хүлээгдэж буй давтамж (хурд) болон арилжааны хэмжээг хэлэлцэх болно.

Ямар нэгэн арилжааны стратеги сонгосны дараа та бүхэл бүтэн системийн архитектурыг төлөвлөх хэрэгтэй. Үүнд техник хангамж, үйлдлийн систем (эсвэл хэд хэдэн систем) сонголт, ховор боловч гамшгийн аюулд тэсвэртэй байдал орно. Архитектурыг төлөвлөхдөө гүйцэтгэлд анхаарлаа хандуулах хэрэгтэй - системийн аналитик хэрэгслийн хурд болон худалдааны хөдөлгүүрийн аль алинд нь.

Худалдааны систем юу хийдэг вэ?

Манай сая орлоготой робот ажиллах "хамгийн сайн" програмчлалын хэлийг сонгохын өмнө энэ хэлэнд тавигдах шаардлагыг тодорхойлох шаардлагатай. Энэ систем нь зөвхөн даалгаварт суурилсан байх уу эсвэл бидэнд эрсдэлийн удирдлага эсвэл багц бүрдүүлэх модуль хэрэгтэй юу? Надад ажиллахын тулд хурдан тестийн модуль хэрэгтэй юу? Ихэнх стратегийн хувьд арилжааны системийг хайгуулын болон дохио үүсгэх гэсэн хоёр ангилалд хувааж болно.

Судалгааны стратеги нь гүйцэтгэлийг түүхэн өгөгдөлтэй харьцуулан шалгахад чиглэдэг. Өнгөрсөн хугацаанд цуглуулсан өгөгдөл дээр туршилт хийхийг backtest гэж нэрлэдэг. Туршилтын модулийн боловсруулалтын хүчин чадал нь өгөгдлийн хэмжээ болон стратегийн алгоритмын нарийн төвөгтэй байдлаас хамаарна. Судалгааны стратегийн хурдыг оновчтой болгохын тулд процессорын хурд, түүний цөмийн тоо нь ихэвчлэн хязгаарлах хүчин зүйл болдог.

Хэрэв бид арилжааны дохиог бий болгох талаар ярих юм бол энд алгоритм нь хэзээ худалдаж авах, зарах, зохих захиалгыг (ихэнхдээ брокерийн системээр дамжуулан) зах зээлд илгээхийг ойлгох ёстой. Зарим стратеги нь өндөр түвшний гүйцэтгэлийг шаарддаг. Стратегийн хурд нь өгөгдлийн сувгийн өргөн, брокер, солилцооны системийн саатал (хоцролт) зэрэг хүчин зүйлээр хязгаарлагддаг.

Тиймээс аль ангиллын стратеги хэрэгтэй байгаагаас хамааран түүнийг хэрэгжүүлэх програмчлалын хэлний сонголт өөр өөр байж болно.

Стратегийн төрөл, хөрвөх чадвар, хэмжээ

Арилжааны стратегийн төрөл нь түүний дараагийн бүх төхөөрөмжид нөлөөлнө. Аль зах зээл дээр худалдаа хийхээр төлөвлөж байгаа, гадаад өгөгдөл нийлүүлэгчдийг холбох боломж, алгоритмын гүйцэтгэсэн үйлдлийн давтамж, тэдгээрийн хэмжээг үнэлэх шаардлагатай. Хөгжүүлэлтийн хялбар байдал, гүйцэтгэлийг оновчтой болгох, түүнчлэн брокер эсвэл солилцооны мэдээллийн төвд байрлуулах шаардлагатай серверүүд, шаардлагатай байж болох нэмэлт тоног төхөөрөмж (GPU, FPGA гэх мэт) зэрэг техник хангамжийн тэнцвэрийг олох нь чухал ач холбогдолтой байх болно. хүчин зүйлүүд.

АНУ-ын зах зээл дээр хөрвөх чадвар багатай хувьцааг арилжаалахын тулд фьючерсийн зах зээлд өндөр давтамжийн статистик арбитрын стратегиас огт өөр технологи ашиглах шаардлагатай болно. Бодит програмчлалын хэлийг сонгохын өмнө та арилжааны стратеги ажиллах өгөгдөл нийлүүлэгчдийг сонгох хэрэгтэй.

Борлуулагчийн системд одоо байгаа холболт, аливаа API-ийн бүтэц, өгөгдөл дамжуулах хурд, алдаа гарсан тохиолдолд хадгалах чадварыг шинжлэх шаардлагатай. Мэдээллийн үйлчилгээ үзүүлэгч бүр өөрийн гэсэн технологийн шаардлага (солилцооны хэрэгслийн тэмдэг гэх мэт) байдаг тул хэд хэдэн ийм системд хандах хандалтыг нэгэн зэрэг зохион байгуулах нь ухаалаг шийдвэр байх болно.

Хүлээгдэж буй арилжааны давтамж нь таны системийн технологийн стекийг хэрхэн хэрэгжүүлэхэд тодорхой нөлөө үзүүлнэ. Минутанд нэгээс олон удаа өгөгдлийг шинэчлэх шаардлагатай стратеги нь ажиллахын тулд илүү их нөөц шаарддаг.

Шалзны өгөгдөл шаарддаг стратегийн хувьд гүйцэтгэлд суурилсан дизайны аргачлалын дагуу системийг бүхэлд нь хөгжүүлэх шаардлагатай. Эдгээр ажилд HDF5 эсвэл kdb+ ихэвчлэн ашиглагддаг.

HFT програмуудад шаардлагатай илүү их хэмжээний өгөгдлүүдийг зохицуулахын тулд оновчтой backtester болон арилжааны хөдөлгүүрийг хоёуланг нь ашиглах ёстой. Ийм системд програмчлалын хэлний үүрэг гүйцэтгэх гол нэр дэвшигчид нь C / C ++ байх болно (зарим газар Ассемблер байж магадгүй). Өндөр давтамжийн стратеги нь ихэвчлэн программчлагдах массив (FPGA) гэх мэт нэмэлт тоног төхөөрөмж, түүнчлэн серверүүдийг солилцооны цөмд аль болох ойр байрлуулах, серверүүдийн сүлжээний интерфейсийг тохируулах шаардлагатай байдаг.

Судалгааны системүүд

Энэ төрлийн системийг бий болгохдоо интерактив хөгжүүлэлт, скрипт автоматжуулалтад хандах шаардлагатай болдог. Эхний үзэл баримтлал нь Visual Studio, MatLab эсвэл R Studio гэх мэт IDE дээр явагддаг. Хувилбарын автоматжуулалт нь янз бүрийн параметрүүд болон өгөгдлийн цэгүүдэд зориулсан их хэмжээний тооцоололтой холбоотой байдаг. Энэ бүхнийг харгалзан кодыг турших маш сайн боломжийг олгодог хэлийг сонгох шаардлагатай бөгөөд өөр өөр параметрийн стратегийг тооцоолохдоо хүлээн зөвшөөрөгдсөн гүйцэтгэлд хүрэх боломжийг олгодог.

Энэ үе шатанд Microsoft Visual C++/C# зэрэг IDE-г ихэвчлэн ашигладаг бөгөөд үүнд дибаг хийх, код бөглөх, төслийн бүх стек (ORM, LINQ)-тай ажиллах янз бүрийн хэрэгслүүд багтдаг; Тоон шугаман алгебр болон вектор үйлдлийн бодлогод тусгайлан зориулагдсан MatLab; Статистикийн R хэлийг ашиглан хэрэгждэг R Studio; Linux Java болон C++-д зориулсан Eclipse IDE ба Python-д зориулсан Enthought Canopy гэх мэт хагас өмчийн IDE-үүд нь төрөл бүрийн өгөгдлийн шинжилгээний сангууд (NumPy, SciPy, scikit-learn болон pandas) багтдаг.

Тоон туршилтын хувьд дурдсан бүх хэрэгслүүд тохиромжтой боловч код нь "арын дэвсгэр дээр" ажиллах тул график IDE ашиглах шаардлагагүй болно. Энэ үе шатанд та хамгийн түрүүнд системийн хурдны талаар бодох хэрэгтэй. Эмхэтгэсэн хэлүүд (C++ гэх мэт) нь арын тестийн сонголтуудын тоо маш их байвал хэрэг болно. Ийм тохиолдолд таны систем эхлэхэд тийм ч хурдан биш байж болох тул дизайны алхам бүрийг маш болгоомжтой хийх хэрэгтэй. Python гэх мэт орчуулагдсан хэлнүүдийн хувьд өндөр гүйцэтгэлтэй номын сангуудыг (NumPy/pandas) ихэвчлэн арын тест хийхэд ашигладаг.

Туршилтын модулийг хэрэгжүүлэх хэлний сонголтыг таны алгоритмын онцлог хэрэгцээ болон энэ хэлэнд ашиглах боломжтой номын сангийн тоогоор тодорхойлно (энэ талаар доор дэлгэрэнгүй үзнэ үү). Гэсэн хэдий ч, backtester болон судалгааны орчинд ашигласан хэл нь Төсвийн ерөнхийлөн захирагч, эрсдэлийн удирдлага, арилжааны хөдөлгүүрийн модулиудад сонгосон хэрэгслээс ялгаатай байж болохыг мартаж болохгүй.

Төсвийн ерөнхийлөн захирагч, эрсдэлийн менежмент

Олон алгоритмын худалдаачид багцын бүтээгч болон эрсдэлийн удирдлагын ач холбогдлыг дутуу үнэлдэг. Эдгээр сангууд нь мөнгөө бирж дээр хадгалах боломжийг олгодог тул энэ нь том алдаа юм. Тэдгээрийн тусламжтайгаар та эрсдэлтэй гүйлгээний тоог бууруулаад зогсохгүй арилжааны үйл ажиллагааны зардлыг бууруулж, гүйлгээний зардлыг бууруулж чадна.

Эдгээр бүрэлдэхүүн хэсгүүдийг сайтар бодож хэрэгжүүлэх нь ашигт ажиллагааны чанар, тогтвортой байдалд чухал нөлөө үзүүлдэг. Тэдгээргүйгээр тогтвортой стратеги бий болгоход маш хэцүү байдаг, учир нь багц цуглуулах механизм, эрсдэлийн менежер байгаа нь арилжааны системийг өөрчлөхөд хялбар болгодог.

Төсвийн ерөнхийлөн захирагч модулийн даалгавар бол ашигтай арилжааны багцыг тодорхойлж, хамгийн их ашиг авчрах арилжааг хийх явдал юм - үүний тулд олон хүчин зүйлийг (жишээлбэл, хэлбэлзэл, хөрөнгийн ангилал, хувьцаа нь арилжаалагдаж буй компанийн салбар) дүн шинжилгээ хийдэг. ). Үүний дагуу бэлэн байгаа хөрөнгийг янз бүрийн биржийн хэрэгслүүдэд хуваарилдаг.

Портфолио бүтээх нь ихэвчлэн шугаман алгебрийн асуудал (матрицын хүчин зүйлчлэл гэх мэт) болж буурдаг бөгөөд энэ нь механизмын гүйцэтгэл нь шугаман алгебрийн хэрэгслийг системд хэрэгжүүлэх үр ашгаас ихээхэн хамаардаг гэсэн үг юм. Алдартай номын санд C++-д зориулсан uBLAS, LAPACK, NAG зэрэг орно. MatLab нь матрицтай ажиллах өргөн боломжуудтай. Python ийм төрлийн тооцоололд NumPy/SciPy ашигладаг. Систем нь өндөр чанартай, тэнцвэртэй багцыг дэмжихийн тулд танд матрицтай ажиллахын тулд эмхэтгэсэн (болон оновчтой) номын сан хэрэгтэй болно.

Аливаа алгоритмын арилжааны системийн бас нэг чухал хэсэг бол эрсдэлийн удирдлагын модуль юм. Эрсдэл нь янз бүрийн хэлбэртэй байж болно: хэлбэлзэл ихсэх (зарим стратегид ч гэсэн боломжтой), хөрөнгийн ангиллын хоорондын хамаарал нэмэгдэх, серверийн тасалдал, "хар хун" гэж нэрлэгддэг (урьдчилан таамаглах боломжгүй үйл явдлууд) болон арилжааны програмын кодонд илрээгүй алдаанууд - мөн энэ нь Энэ нь болзошгүй асуудлуудын зөвхөн өчүүхэн хэсэг юм.

Эрсдэлийн удирдлагын модуль нь дээрх эрсдэлүүдийн ихэнхийн үр дагаврыг "урьдчилан харах" оролдлого хийдэг. Үүний тулд статистикийн шинжилгээг ихэвчлэн ашигладаг (жишээлбэл, Монте Карлогийн стресс тест). Зэрэгцээ байдал нь ийм тооцоололд ихээхэн үүрэг гүйцэтгэдэг бөгөөд ерөнхийдөө гүйцэтгэлийн асуудлыг зөвхөн тооцоолох хүчийг нэмэгдүүлэх замаар шийдэж болно.

Худалдааны хөдөлгүүр

Системийн арилжааны хөдөлгүүрийн үүрэг бол багц үүсгэгч болон эрсдэлийн удирдлагын модулиудаас шүүсэн арилжааны дохиог хүлээн авч, тэдгээрт үндэслэн арилжааны захиалга үүсгэж, дараа нь брокерийн арилжааны систем рүү илгээдэг. "Тогтмол" хувийн худалдаачдын хувьд энэ нь API эсвэл FIX протоколын холболтыг шаарддаг. Үүний дагуу хэлийг сонгохын тулд API-ийн чанар, түүнтэй ажиллахад зориулсан програм хангамжийн бүрхүүл байгаа эсэх, гүйлгээний хүлээгдэж буй давтамж, захиалгыг илгээх хооронд хүлээгдэж буй "гулсалтыг" шинжлэх шаардлагатай. брокерын систем ба түүний гадаад төрх нь биржийн арилжааны системийн цөмд.

API-ийн "чанар" нь хэд хэдэн элементээс бүрдэнэ: баримт бичгийн чанар, интерфэйсийн хангадаг гүйцэтгэл, түүнтэй ажиллахад тусдаа програм хангамж хэрэгтэй эсэх, эсвэл GUIгүйгээр холболт үүсгэх боломжтой эсэх гэх мэт.

Ихэнх брокерийн API нь C++ ба/эсвэл Java интерфейстэй. Ихэвчлэн ийм хэрэгсэл бүрийн эргэн тойронд брокерын үйлчлүүлэгч-Хэрэглэгчдийн нийгэмлэг үүсдэг бөгөөд тэдгээр нь түүнийг хөгжүүлж, C #, Python, R, Excel, MatLab-д зориулж багц үүсгэхэд тусалдаг. Гэсэн хэдий ч аливаа нэмэлт залгаас нь янз бүрийн алдаа агуулж болно гэдгийг санах нь зүйтэй бөгөөд ингэснээр тэдгээрийг үргэлж сайтар шалгаж, хөгжүүлэгчид тэдний бүтээлийг дэмжих ажилд оролцож байгаа эсэхийг шалгах хэрэгтэй. Сүүлийн саруудад шинэчлэлтүүд хэр олон удаа гарч байгааг харах нь дээр.

Арилжааны үйл ажиллагааны давтамж нь арилжааны хөдөлгүүрийн алгоритмын хамгийн чухал элемент юм. Робот минутанд хэдэн зуун захиалга илгээх чадвартай тул системийн гүйцэтгэл чухал байдаг. Хэрэв системийг маш сайн хэрэгжүүлээгүй бол захиалга өгөх ёстой байсан үнэ болон түүнийг бодитоор гүйцэтгэсэн үнэ хоёрын хооронд ихээхэн гулсах нь гарцаагүй. Энэ нь ашигт ажиллагаанд эрс нөлөөлнө.

C++/Java гэх мэт статик хэл (доороос харна уу) нь арилжааны хөдөлгүүр бичихэд хамгийн тохиромжтой боловч тэдгээрийн хэрэглээ нь хөгжүүлэлтийн хугацаа, туршилт, кодыг хадгалах зэрэг асуудлуудыг нэмэгдүүлдэг. Нөгөөтэйгүүр, Python, Perl гэх мэт динамикаар бичигдсэн хэлүүд одоо "хангалттай хурдан" болсон. Системийнхээ бүх бүрэлдэхүүн хэсгүүдийг системд цаг хугацааны явцад устгах, шинээр нэмэхэд хялбар болгодог модульчлагдсан арга барилаар хийгдсэн эсэхийг шалгаарай.

Архитектурын төлөвлөлт, хөгжлийн үйл явц

Бид арилжааны системийн бүрэлдэхүүн хэсгүүд, арилжааны давтамжийн параметрүүдийн ач холбогдол, тэдгээрийн эзлэхүүний талаар аль хэдийн ярилцсан боловч дэд бүтцийн асуудлыг хараахан хөндөөгүй байна. Бие даасан хувийн худалдаачин эсвэл жижиг HFT компани эсвэл сангийн ажилтан альфа загварын шинжилгээ, эрсдэлийн удирдлага, гүйцэтгэлийн параметрүүд, системийг эцсийн байдлаар байршуулах зэрэг олон бэрхшээлтэй тулгарах магадлалтай. Эдгээр нь бүгд чухал зүйл тул програмчлалын хэлнүүдийн талаар ярихаасаа өмнө системийн оновчтой архитектурын талаар ярилцах нь зүйтэй.

Ашиг сонирхлын тусгаарлалт

Худалдааны роботыг бий болгох хамгийн чухал ажлуудын нэг бол "санаа зоволтыг салгах" буюу програм хангамж хөгжүүлэх хэлээр арилжааны системийн янз бүрийн талуудыг модульчлагдсан бүрэлдэхүүн хэсгүүдэд хуваах явдал юм.

Бүрэлдэхүүн хэсгүүдэд хуваах нь ирээдүйд бүх хамаарлыг шалгах шаардлагагүй, бусад газруудад "ямар нэгэн зүйл эвдэрсэн бол" гүйцэтгэл, найдвартай байдлыг сайжруулах, засвар үйлчилгээг хөнгөвчлөхийн тулд системд шинэ модулиудыг өөрчлөх / солих / нэмэхэд тусална. Худалдааны системийн хувьд энэ арга нь хамгийн сайн туршлага юм. "Дунд хурдтай" ажилладаг системүүдийн хувьд үүнийг хэрэгжүүлэх нь маш их хүсч байна. HFT системийн хувьд илүү хурдан гүйцэтгэлд хүрэхийн тулд зарим дүрмийг үл тоомсорлож болох ч ерөнхийдөө энэ аргыг баримтлах нь зүйтэй юм.

Арилжааны алгоритмын системийн бүрэлдэхүүн хэсгийн зураглалыг бий болгох нь тусдаа нийтлэлд хамаарах сэдэв юм. Гэсэн хэдий ч энд хамгийн оновчтой арга бол зах зээлийн түүхэн болон бодит мэдээлэл, өгөгдөл хадгалах, хандалтын API, арын тестийн модуль, стратегийн параметрүүд, багц үүсгэгч, түүнчлэн эрсдэлийн удирдлагын модуль болон арилжааны хөдөлгүүрийн тусдаа бүрэлдэхүүн хэсгүүдийг хэрэгжүүлэх явдал юм.

Жишээлбэл, өгөгдлийн агуулахтай ажиллах үр дүнтэй холбоотой асуудал олдвол (оновчлолын ажлын дараа ч) ийм модулийг өгөгдөл хүлээн авах эсвэл API хандалтын бүрэлдэхүүн хэсгүүдэд юу ч дахин бичих шаардлагагүйгээр амархан сольж болно.

Модульчлагдсан схемийн өөр нэг давуу тал нь системийн янз бүрийн хэсэгт өөр өөр програмчлалын хэлийг ашиглах боломжийг олгодог. Системийн бүрэлдэхүүн хэсгүүдийн холболтын арга нь бие даасан байвал тодорхой хэрэгсэлд хатуу холбох шаардлагагүй болно. Жишээлбэл, тэд TCP/IP, ZeroMQ эсвэл бусад протоколоор харилцах боломжтой.

Тодорхой жишээний хувьд, backtesting системийг өндөр гүйцэтгэлтэй байхын тулд C++ хэл дээр бичиж болох бол багцын менежер болон арилжааны системийг SciPy болон IBPy ашиглан Python хэл дээр бичиж болно.

Гүйцэтгэлийн талаархи бодол

Гүйцэтгэл нь бараг бүх арилжааны стратегид чухал байдаг. Арилжааны системийн давтамж өндөр байх тусам энэ хүчин зүйл илүү чухал байдаг. “Гүйцэтгэл” гэдэг нь алгоритмын гүйцэтгэлийн хурд, сүлжээний хоцролт, холбооны суваг, өгөгдөл оруулах/гаралт, олон урсгалтай/параллелизм, масштаб зэрэг олон зүйлийг хэлдэг. Эдгээр тал тус бүрт тусдаа номууд зориулагдсан тул бид зөвхөн тэдгээрийн талаар товчхон ярих болно. Одоо бид архитектур болон тодорхой програмчлалын хэлүүдийг системийн ерөнхий гүйцэтгэлд үзүүлэх нөлөөллийн талаар авч үзэх болно.

Бидний компьютерийн шинжлэх ухаан гэж нэрлэдэг зүйлийн эцэг эхийн нэг Донал Кнут "бүх бузар муугийн үндэс нь эрт оновчлол юм" гэж маш ухаалаг зүйл хэлсэн. Энэ нь бараг үргэлж үнэн байдаг, гэхдээ HFT арилжааны алгоритмыг хөгжүүлэх тохиолдолд биш юм! Хэрэв та өндөр давтамж багатай стратеги бий болгохыг сонирхож байгаа бол системийг хамгийн энгийн аргаар бүтээж, зөвхөн саад тотгор илэрсэн үед л оновчтой болгож эхлэх нь таны хэрэг болно.

Тэдгээрийг тодорхойлохын тулд янз бүрийн профайл хийх хэрэгслийг ашигладаг. Та MS Windows болон Linux орчинд профайл үүсгэж болно. Үүнийг хийхийн тулд олон янзын арга хэрэгсэл байдаг. Одоо тохиролцсоны дагуу бид гүйцэтгэлийн хүрээнд тодорхой програмчлалын хэлүүдийг хэлэлцэх болно.

C++, Java, Python, R, MatLab нь үндсэн өгөгдлийн багц болон алгоритмын ажилд зориулагдсан өндөр хүчин чадалтай (дотоод болон гадаад) сангуудтай. C++ нь Стандарт Загварын Номын сантай, харин Python нь NumPy/SciPy-тэй хамт ирдэг. Та эдгээр сангаас математикийн стандарт бодлогуудыг олох боломжтой бөгөөд өөрийн хэрэгжилтийг бичих нь ашиг тустай нь ховор байдаг.

Үл хамаарах зүйл бол танд өвөрмөц техник хангамж хэрэгтэй бөгөөд зарим өмчлөлийн өргөтгөлүүдтэй (захиалгат кэш гэх мэт) ажилладаг алгоритмыг ашиглах явдал юм. Үүний зэрэгцээ дугуйг зохион бүтээх нь ихэвчлэн цаг хугацаа шаарддаг гэдгийг санах нь зүйтэй бөгөөд үүнийг худалдааны системийн бүх хэсгийг хөгжүүлэх, оновчтой болгоход илүү их ашиг тустай зарцуулж болно. Ялангуяа та өөрийн системээ барьж байгаа бол хөгжүүлэх цаг бол үнэлж баршгүй юм.

Худалдааны хөдөлгүүрийн хувьд зах зээлийн шинжилгээний хэрэгслүүд нь ихэвчлэн нэг машин дээр байрладаг тул сааталтай холбоотой асуудал байнга гардаг. Гүйцэтгэх үйл явцын аль ч үе шатанд саатал үүсч болно: мэдээллийн санд хандах (диск / сүлжээний саатал), арилжааны дохио үүсгэх шаардлагатай (OS эсвэл цөмийн саатал), захидлуудыг бирж рүү илгээх (харилцаа холбооны сувгийн саатал) байх ёстой. биржийн арилжааны системийн цөмөөр боловсруулагдсан (биржийн саатал).

Үр ашигтай HFT системийг бий болгохын тулд та цөмийн түвшний оновчлол болон өгөгдөл дамжуулах үйл явцын оновчлолыг ойлгох хэрэгтэй.

Өндөр хурдны солилцооны робот хөгжүүлэгчдэд хэрэгтэй өөр нэг хэрэгсэл бол кэш юм. Кэш хийх гол санаа бол байнга асуудаг мэдээллийг нөөцийг дэмий үрэлгүйгээр олж авах боломжтой байлгах явдал юм. Жишээлбэл, вэб хөгжүүлэлтийн хувьд дискэн дээрх хамаарлын мэдээллийн сангаас өгөгдлийг санах ой руу ачаалах үед кэшийг ашиглаж болно. Энэ өгөгдлийн дараагийн бүх хүсэлтийг мэдээллийн сан руу илгээх шаардлагагүй бөгөөд энэ нь системийн ажиллагааг мэдэгдэхүйц сайжруулж чадна.

Онлайн худалдааны хувьд кэш хийх нь бас маш хэрэгтэй зүйл байж болно. Жишээлбэл, та багцын одоогийн төлөвийг кэш рүү хадгалж, доторх хэрэгслүүдийг "дахин тэнцвэржүүлэх" хүртэл хадгалах боломжтой бөгөөд энэ нь алгоритмыг эхлүүлэх бүрт худалдаж авсан болон зарагдсан хөрөнгийн жагсаалтыг шинээр үүсгэх шаардлагагүй болно. - Үүнийг зүгээр л шинэчилж болно. Ийм ажиллагаа нь CPU болон I/O их хэмжээний нөөц шаарддаг.

Харамсалтай нь кэш хийх нь асуудалгүй биш юм. Кэшийн хадгалалтын тогтворгүй шинж чанараас шалтгаалан кэш дэх өгөгдлийг дахин ачаалах нь дэд бүтцийн ихээхэн нөөц шаарддаг. Өөр нэг асуудал бол домино эффект бөгөөд өндөр ачаалал нь санамсаргүйгээр кэшийн олон хуулбарыг үүсгэж улмаар хэд хэдэн эвдрэлд хүргэдэг.

Динамик санах ойн хуваарилалт нь үнэтэй ажиллагаа юм. Тиймээс өндөр гүйцэтгэлтэй арилжааны програмууд нь санах ойтой сайн ажиллах чадвартай байх ёстой бөгөөд програмын урсгалын бүх үе шатанд хуваарилах, авах чадвартай байх ёстой. Java, C#, эсвэл Pytong зэрэг шинэ програмчлалын хэлүүд нь санах ойг динамикаар хуваарилах эсвэл хуваарилах автомат хог цуглуулах боломжтой.

Энэ хэрэгсэл нь алдааны тоог бууруулж, кодыг унших чадварыг сайжруулдаг тул хөгжүүлэлт хийхэд маш их хэрэгтэй байдаг. Гэсэн хэдий ч зарим HFT системүүдийн хувьд санах ойн удирдлагын стандарт хэрэгслийг ашиглахгүй, харин өөрөө хэрэгжүүлэх нь дээр. Жишээлбэл, Java хэл дээр хог цуглуулагч болон овоолгын тохиргоог бага зэрэг өөрчлөх нь HFT стратегийн гүйцэтгэлийг сайжруулж чадна.

C++ хэл дээр уугуул хог цуглуулагч байхгүй тул объектуудыг хэрэгжүүлэх явцад санах ойн хуваарилалт, чөлөөлөлтийг удирдах шаардлагатай. Энэ нь мэдээжийн хэрэг алдаа гарах магадлалыг ихэсгэдэг ч тодорхой программ дахь объект, овоолгыг илүү сайн хянах боломжийг олгодог. Програмчлалын хэлийг сонгохдоо хог хаягдлыг хэрхэн яаж цуглуулах, мөн тодорхой хувилбаруудад энэ механизмын ажиллагааг оновчтой болгох боломжтой эсэх талаар илүү ихийг олж мэдэхийн тулд асуудал гарга.

Алгоритм арилжааны олон үйлдлүүдийг зэрэгцүүлэн хийж болно, өөрөөр хэлбэл програмын өөр өөр үйлдлүүдийг нэгэн зэрэг гүйцэтгэх боломжтой болгоно. "Гайхалтай зэрэгцээ" гэж нэрлэгддэг алгоритмууд нь бусад алхмуудаас бүрэн хамааралгүйгээр гүйцэтгэх алхмуудыг агуулдаг. Монте-Карлогийн симуляци гэх мэт статистикийн тусгай үйлдлүүд нь ийм параллель алгоритмуудын сайн жишээ юм, учир нь тохиолдох магадлал, үйл явдлын явцыг нөхцөл байдлын бусад боломжит замыг мэдэхгүйгээр тооцоолж болно.

Бусад алгоритмууд нь зөвхөн хэсэгчлэн зэрэгцүүлэх боломжтой байдаг. Энэ төрлийн алгоритмууд нь гидродинамик дахь загварчлалыг багтаасан бөгөөд тооцооллын талбарыг тусдаа домэйнд хувааж болох боловч тэдгээр нь хоорондоо холбогдох шаардлагатай хэвээр байна. Зэрэгцээ алгоритмууд нь N бие даасан процессын хувьд (жишээлбэл, процессорын цөм эсвэл утасн дээр) параллель алгоритмын гүйцэтгэлийг сайжруулах онолын дээд хязгаарыг оруулдаг Амдалын хуульд захирагддаг.

Процессорын цагийн хурд сүүлийн үед нэмэгдээгүй, шинэ процессорууд нь зэрэгцээ тооцоолол хийх боломжтой улам олон цөм агуулсан тул параллелчлал нь оновчтой болгох чухал элемент болсон. График техник хангамжийн хөгжил (ялангуяа видео тоглоомын хувьд) нь GPU-г сайжруулахад хүргэсэн бөгөөд одоо олон тооны үйлдлүүдийг нэгэн зэрэг гүйцэтгэх олон зуун "цөм" агуулсан байна. Ийм GPU-ийн үнэ илүү хямд болсон. Nvidia-ийн CUDA гэх мэт өндөр түвшний фреймворкууд нь шинжлэх ухаан, санхүүгийн салбарт өргөн тархсан.

Ерөнхийдөө ийм GPU төхөөрөмжүүд нь зөвхөн судалгааны ажилд тохиромжтой боловч HFT-д шууд ашиглагддаг (FPGA гэх мэт) байдаг. Одоогийн байдлаар орчин үеийн програмчлалын хэлнүүдийн дийлэнх нь олон урсгалыг тодорхой хэмжээгээр дэмждэг бөгөөд энэ нь жишээлбэл, backtester-ийг бие биенээсээ хамааралгүй процессуудыг ашиглахын тулд оновчтой болгох боломжийг олгоно.

Програм хангамжийн хөгжүүлэлтийн масштаб нь илүү их хүсэлт, илүү их CPU-ийн хэрэглээ, илүү их санах ойн хуваарилалт хэлбэрээр байнга өсөн нэмэгдэж буй ажлын ачааллыг зохицуулах системийг хэлнэ. Алгоритм арилжааны хувьд стратеги нь "масштаб" гэсэн үг бөгөөд энэ нь их хэмжээний хөрөнгөөр ​​ажиллаж, эерэг үр дүнд хүргэдэг. Арилжааны технологийн стек нь их хэмжээний ачааллыг даван туулж, саатлыг саатуулахгүйгээр зохицуулж чадвал өргөтгөх боломжтой.

Мэдээжийн хэрэг, системийг өргөтгөх боломжтой байхаар зохион бүтээсэн байх ёстой, гэхдээ асуудал, саад бэрхшээлийг урьдчилан таамаглахад хэцүү байж болно. Нарийн бүртгэл, профайл, хяналт нь системийг илүү өргөжүүлэх боломжтой болгоно. Зарим програмчлалын хэлийг ихэвчлэн "хэмжих боломжгүй" гэж тодорхойлдог. Үнэн хэрэгтээ, ингэж хэлж байгаа хүмүүс зүгээр л "тэднийг яаж хоол хийхээ мэдэхгүй байна". Технологийн бүх стек нь өргөтгөх боломжгүй байж болох ч хэл өөрөө биш. Мэдээжийн хэрэг, зарим хэл нь тодорхой тохиолдолд бусдаас илүү сайн гүйцэтгэлтэй байдаг ч нэг хэл нь бүх утгаараа нөгөө хэлээс "илүү сайн" гэж хэлж болохгүй.

Дээр хэлсэнчлэн та ашиг сонирхлоо хуваалцах хэрэгтэй. Систем нь "баяжуулалт" (олон тооны гүйлгээг үүсгэдэг гэнэтийн хэлбэлзэл гэж нэрлэгддэг) -ийг даван туулахын тулд "мессежийн дарааллын архитектур" үүсгэх нь ашигтай байдаг. Энэ нь арилжааны системийн бүрэлдэхүүн хэсгүүдийн хооронд мессежийн дараалал байгаа гэсэн үг бөгөөд ингэснээр тодорхой бүрэлдэхүүн хэсэг нь олон хүсэлтийг боловсруулах боломжгүй тохиолдолд систем зогсдог.

Техник хангамж ба үйлдлийн системүүд

Таны арилжааны систем ажиллаж байгаа техник хангамж нь алгоритмын ашигт ажиллагаанд чухал нөлөө үзүүлдэг. Энэ нь зөвхөн өндөр давтамжийн худалдаачдад хамаарахгүй - муу серверүүд ямар ч үед бүтэлгүйтэх боломжтой бөгөөд төмрийн буруугаас болж нэг боловч маш чухал үйлдлийг хийж чадахгүй бол таны робот хичнээн гүйлгээ хийх нь хамаагүй. . Тиймээс арилжааны системийн техник хангамжийг сонгох нь маш чухал юм. Ихэвчлэн хэрэглэгчийн өөрийн компьютер, алсын сервер, үүлэн виртуал машин эсвэл нэг байршил дахь сервер (бирж, брокерын мэдээллийн төвд) хооронд сонголт хийдэг.

Ширээний сонголт нь хамгийн энгийн бөгөөд хамгийн хямд нь ойлгомжтой бөгөөд энэ нь олон тооны хэрэглэгчдэд ээлтэй үйлдлийн системүүд (Windows, Mac OS, Ubuntu) байдагтай холбоотой юм. Гэхдээ тэд бас мэдэгдэхүйц сул талуудтай. Үүний нэг гол зүйл бол үйлдлийн системээ шинэчлэх бүрт арилжааны роботыг нөхөх шаардлагатай болохоос гадна компьютерийг үе үе дахин ачаалах шаардлагатай болдог нь тийм ч сайн биш юм. Нэмж дурдахад, хувийн машины тооцоолох нөөцийг GUI-г хадгалахад зарцуулдаг боловч арилжааны системийн гүйцэтгэлийг нэмэгдүүлэхэд зарцуулж болно!

Нэмж дурдахад гэртээ эсвэл оффис дээрээ ажиллах нь ажиллах хугацаа, интернетийн холболттой холбоотой асуудалтай тулгардаг. Ширээний системийн гол давуу тал нь түүний нэмэлт тооцоолох хүчийг ижил хурдтай серверийг шинэчлэхэд шаардагдахаас хамаагүй бага үнээр худалдаж авах боломжтой юм.

Зориулалтын сервер эсвэл үүлэн машин нь танд ширээний компьютерээс илүү үнэтэй байх болно, гэхдээ энэ нь танд автоматжуулсан мэдээллийн нөөцлөлт, ажиллах цагийг тохируулах, хурд хянах зэрэг илүү шаардлагагүй дэд бүтцийг зохион байгуулах боломжийг олгоно. Тэдгээрийг удирдахад илүү хэцүү байх болно, учир нь наад зах нь энэ нь алсаас холболт шаарддаг.

Windows серверүүдийн хувьд RDP-г ашиглах магадлалтай бөгөөд Unix-д суурилсан системүүдэд SSH-аас татгалзах боломжгүй - командын мөрөөс холдох арга байхгүй бөгөөд энэ нь Excel эсвэл MatLab зэрэг хөгжүүлэлтийн зарим хэрэгслийг боломжгүйгээс болж ашиглах боломжгүй болгодог. график интерфэйсгүйгээр ажиллах.

Хамтарсан сервер гэдэг нь та серверээ биржийн гол хэсэгт аль болох ойртуулна гэсэн үг - түүний дата төвд эсвэл биржийн системтэй ижил дотоод сүлжээнд байрладаг брокерын дата төвд. Зарим HFT стратегийн хувьд энэ нь хамгийн үнэтэй хэдий ч цорын ганц боломжит хувилбар юм.

Програм хангамж, програмчлалын хэлийг сонгохдоо анхаарах ёстой эцсийн тал бол платформын бие даасан байдал юм. Өөр өөр үйлдлийн системүүд дээр код ажиллуулах шаардлага бий юу? Эсвэл тухайн код нь x86/x64 гэх мэт тодорхой процессорын архитектур дээр ажиллахаар бүтээгдсэн үү эсвэл ARM-ийн RISC процессорууд дээр бас ажиллах боломжтой юу? Эдгээр асуултын хариулт нь хүлээгдэж буй давтамж, арилжааны стратегийн төрлөөс шууд хамаарна.

Тогтвортой байдал ба Туршилт

Алгоритм арилжаанд их хэмжээний мөнгө алдах хамгийн сайн арга бол тогтворгүй системийг бий болгох явдал юм. Тохиромжтой байдал нь брокерийн тасалдал (эсвэл дампуурал), гэнэтийн өндөр хэлбэлзэл, интернетийн үйлчилгээ үзүүлэгч (интернет, дата төв) тасалдал, эсвэл арилжааны мэдээллийн санг бүхэлд нь санамсаргүйгээр устгах зэрэг ховор тохиолдлуудад системийн хариу үйлдэл үзүүлэх чадварыг багтаадаг. Буруу хэрэгжүүлсэн архитектур нь олон жилийн амжилттай, ашигтай арилжааг хэдхэн секундын дотор цуцлах боломжтой. Таны арилжааны системийн гол цэгүүд нь дибаг хийх, турших, нөөцлөх, бэлэн байдал, хяналт байх ёстой.

Өндөр чанартай арилжааны системийг хөгжүүлэхдээ дибаг хийх, турших, дэмжихэд цаг хугацааны 50-иас бага хувийг зарцуулна гэж бүү бодоорой.

Бараг бүх програмчлалын хэлүүд дибаглагчтай эсвэл гуравдагч талын тохирох хувилбаруудтай байдаг. Дибаглагчийн тусламжтайгаар та програм эвдрэхээс өмнө түүний үйлдлийг шалгах боломжийг олгодог тусгай таслах цэгүүдийг коддоо байрлуулж болно.

Дибаг хийх нь алдааны шинжилгээний чухал хэрэгсэл боловч үүнийг ихэвчлэн C++ эсвэл Java зэрэг хөрвүүлсэн хэлүүдэд ашигладаг бол Python гэх мэт тайлбарласан хэлийг дибаг хийхэд хялбар байдаг. Гэхдээ энэ хэл нь дибаг хийх хүчирхэг хэрэгсэл болох pdb-тэй хамт ирдэг. Microsoft Visual C++ IDE нь GUI дибаг хийх нэмэлт хэрэгслүүдтэй бол Linux C++-д та gdb дибаглагчийг ашиглах шаардлагатай болно.

Туршилтгүйгээр биш. Хамгийн орчин үеийн тестийн парадигм бол TTD буюу Test Driven Development бөгөөд системд хүссэн өөрчлөлтийг хамарсан тестийг эхлээд бичээд дараа нь түүний доор энэ шалгалтыг давах код бичдэг.

Туршилтын дагуу хөгжүүлэх нь маш их сахилга бат шаарддаг амар ажил биш юм. C ++-ийн хувьд Boost-д нэгжийн тестийн хүрээ, Java-д ижил зорилгоор JUnit номын сан байдаг. Python нь стандарт номын сангийн нэг хэсэг болох ийм төрлийн тест хийх модультай. Бусад олон хэлүүд нэгжийн туршилт хийх хэрэгсэл, хүрээтэй байдаг.

Бүтээмжтэй орчинд мод бэлтгэх нь туйлын шаардлагатай бөгөөд бодолтой байдаг. Төрөл бүрийн алдааны мэдэгдэл, системийн үйлдлийг гаргах процессыг бий болгох шаардлагатай. Лог бол асуудал, бүтэлгүйтлийг шийдвэрлэхэд хамгийн түрүүнд хийх зүйл юм. Даалгаврын гадаад энгийн байдлыг үл харгалзан - файл руу мессеж гаргах, хадгалах - үнэн хэрэгтээ бүх зүйл илүү төвөгтэй бөгөөд үүнийг хэрэгжүүлэхээсээ өмнө бүртгэлийн системийн схемийн талаар бодох хэрэгтэй.

Windows болон Линукс аль аль нь төрөл бүрийн бүртгэл хийх хэрэгсэл, функцуудтай бөгөөд програмчлалын хэлүүд нь ихэнх зорилгоор ажиллах бүртгэлийн сангуудтай ирдэг. Үндэслэлтэй шийдэл бол тайлагнах бүх мэдээллийг төвлөрүүлэх явдал юм - ингэснээр ирээдүйд дүн шинжилгээ хийхэд илүү тохиромжтой байх болно.

Бүртгэлүүд нь танд өнгөрсөнд юу тохиолдсон талаар ойлголт өгөх бөгөөд хяналтын систем нь одоогийн нөхцөл байдлын талаархи ойлголтыг өгөх болно. Таны арилжааны системийн бараг бүх талыг хянах боломжтой бөгөөд хянаж байх ёстой: дискний зайны ашиглалт, боломжтой санах ой, холбоосын төлөв, CPU-ийн хэрэглээ зэрэг нь нөхцөл байдлын талаархи үндсэн ойлголтод хэрэгтэй мэдээлэл юм.

Нэмж дурдахад, арилжааны хэмжүүрүүд болох хэвийн бус хэмжээ эсвэл үнэ, дансны гэнэтийн уналт, эдийн засгийн тодорхой салбар эсвэл бүхэл бүтэн улс орнуудад нөлөөлж буй мэдээ зэргийг хянах нь зүйтэй. Монитор нь параметрүүдийн аль нэгийг зөрчсөн тохиолдолд танд мэдэгдэх модультай байх ёстой. Та тухайн үйл явдлын ноцтой байдлаас хамааран өөр өөр мессеж дамжуулах аргыг (и-мэйл, SMS, роботоос утас руу залгах) ашиглаж болно.

Ихэвчлэн тусгай зориулалтын администратор системийг хянах үүрэгтэй боловч хэрэв та бүх зүйлийг өөрөө хийвэл хөгжлийг хөнгөвчлөх янз бүрийн хэрэгслийг ашиглах шаардлагатай болно, учир нь янз бүрийн тохиолдолд төлбөртэй, үнэгүй, нээлттэй шийдлүүд байдаг.

Системийн нөөцлөлт, бэлэн байдал нь хамгийн түрүүнд ажиллах зүйл юм. Дараах асуултуудын талаар бодоорой: 1) хэрэв ямар нэг (аймшигтай) шалтгаанаар мэдээллийн сан бүхэлдээ гэнэт устгагдвал (мөн нөөцлөлт байхгүй бол) энэ нь захиалга судлах, гүйцэтгэх алгоритмд хэрхэн нөлөөлөх вэ? 2) Хэрэв арилжааны систем удаан хугацаагаар гацсан бол (хэрэв нээлттэй байр суурьтай бол) энэ нь данс, багц дахь мөнгөний хэмжээнд хэрхэн нөлөөлөх вэ? Эдгээр асуултын хариулт нь ихэвчлэн айдас төрүүлдэг.

Тиймээс өгөгдлийг нөөцлөх, цаашид байршуулах системийг хөгжүүлэх нь зайлшгүй шаардлагатай - энэ нь хуулбарлахаас хамаагүй чухал юм. Олон худалдаачид хадгалсан нөөцлөлтийг туршиж үздэггүй бөгөөд энэ нь зөв цагт энэ өгөгдөл "өнхрөх" боломжтой бөгөөд систем нь хүлээгдэж буй байдлаар ажиллах болно гэсэн баталгаа өгөхгүй.

Системийн хүртээмжтэй ажиллахад мөн адил хамаарна. Нэмэлт зардлуудыг үл харгалзан нэмэлт дэд бүтцийн бэлэн байдал, илүүдэлтэй эсэх талаар анхаарч үзээрэй - системийн сул зогсолтын зардал нь хэдхэн минутын дотор бүх зардлаас хэдэн арван дахин давж болно.

Хэлний сонголт

Бид арилжааны системийг хөгжүүлэхэд нөлөөлөх олон хүчин зүйл, талыг аль хэдийн авч үзсэн. Програмчлалын хэлний талаар ярих цаг болжээ.
Төрөл систем
Арилжааны стекийн програмчлалын хэлийг сонгохдоо төрлийн системийн талаар мартаж болохгүй. Алгоритм арилжаалагчдын сонирхдог хэл нь динамик эсвэл статик байж болно. Сүүлийнх нь C++ болон Java-г агуулдаг бөгөөд тэдгээр нь эмхэтгэлийн явцад төрлийг шалгадаг. Динамик хэл дээр энэ шалгалтыг ямар ч эмхэтгэлгүйгээр шууд хийдэг. Эдгээр нь жишээлбэл, Python, Perl болон JavaScript юм

Арилжааны роботуудыг багтаасан өндөр нарийвчлалтай системүүдийн хувьд эмхэтгэх цагийн төрлийг шалгах нь тоон алдаад хүргэж болох олон тооны алдааг арилгадаг тул маш ашигтай сонголт байж болно. Нөгөөтэйгүүр, төрлийг шалгах нь бүх боломжит алдаануудыг илрүүлдэггүй тул та онцгой тохиолдлуудыг шийдвэрлэхэд цаг зарцуулах хэрэгтэй. Динамик хэлийг ашиглах үед статик хэл дээр төрлийг шалгахад гарахгүй эхлүүлэх алдаа ихэвчлэн гардаг. Хэрэв та динамик хэл ашиглаж байгаа бол гарч болзошгүй алдааны тоог багасгахын тулд TDD аргачлал, нэгжийн туршилтыг хэрэгжүүлэх нь зүйтэй.

Нээлттэй эх сурвалж эсвэл хувийн програм хангамж уу?

Арилжааны алгоритмын програм хангамжийг хөгжүүлэгчийн хийх ёстой гол шийдвэрүүдийн нэг бол арилжааны програм хангамж ашиглах уу, эсвэл нээлттэй технологид хандах уу. Эдгээр зам бүр өөрийн давуу болон сул талуудтай. Хэл хэр сайн дэмжигддэг, олон нийт хэр идэвхтэй хөгжүүлж байгаа, суулгах, засвар үйлчилгээ хийхэд хэр хялбар, вэб дээрх баримт бичиг хэр сайн байгааг судалж, лиценз, бүтээгдэхүүнийг ашиглахад гарах зардлыг тооцоолох шаардлагатай. .

Microsoft .NET стек (Visual C++, Visual C# орно) болон MatLab-ийн MathWorks нь худалдааны системийг хөгжүүлэх үндсэн хэрэгсэл юм. Энэ хоёр системийг дэлхийн өнцөг булан бүрт байгаа олон мянган худалдаачид янз бүрийн бирж дээр туршиж үзсэн.

Эдгээр програм хангамжийн бүтээгдэхүүнүүд нь маш сайн баримтжуулсан бөгөөд эдгээр хэрэгслийг хөгжүүлэх сонирхолтой олон нийтийн идэвхтэй хүмүүс байдаг. NET программ хангамж нь C++, C#, VB зэрэг олон програмчлалын хэлтэй нэгдэх, мөн SQL Server мэдээллийн сан (LINQ-ээр) зэрэг Microsoft-ын бусад бүтээгдэхүүнийг хялбархан холбох боломжийг олгодог. MatLab нь санхүүгийн тооцооллын бараг бүх салбарт ашиглах боломжтой олон залгаас, сангуудтай (зарим нь төлбөртэй).

Гэхдээ бас хязгаарлалтууд байдаг. Хамгийн гол нь үнэ бөгөөд энэ нь нэг худалдаачинд тэвчихийн аргагүй байж болох юм (хэдийгээр Microsoft Visual Studio-ийн үндсэн хувилбарыг үнэ төлбөргүй өгдөг). Майкрософт бүтээгдэхүүнүүд хоорондоо сайн ажилладаг боловч тэдгээрийг гуравдагч талын системтэй нэгтгэх нь тийм ч хялбар биш юм. Түүнчлэн, Visual Studio нь зөвхөн WIndows-ийн дор ажилладаг бөгөөд энэ нь ижил төстэй хүчирхэг, сайн тохируулагдсан Линукс сервертэй харьцуулахад удаашралтай гэж буруутгагдаж болно. MatLab-д энэ бүтээгдэхүүнийг ашиглахад хялбар болгох зарим залгаасууд дутуу байна.

Өмчлөлийн бүтээгдэхүүний гол сул тал бол эх кодыг ашиглах боломжгүй байдаг. Энэ нь танд хэт болон мега гүйцэтгэл хэрэгтэй үед та тэдгээрийн доторх ямар ч зүйлийг өөрчлөх боломжгүй тул хязгаарлагдмал байх болно гэсэн үг юм.

Нээлттэй эхийн бүтээгдэхүүнүүд нь санхүүгийн салбарт бас түгээмэл байдаг. Жишээлбэл, Linux, MySQL/PostgreSQL, Python, R, C++ болон Java-г өндөр гүйцэтгэл шаардлагатай газарт ашигладаг. Гэсэн хэдий ч эдгээр хэрэгслүүдийн аль нь ч энэ зах зээлд "хурцалсан" гэж нэрлэгдэх боломжгүй. Python болон R нь олон тооны нэмэлт сангуудыг агуулдаг бөгөөд тэдгээрийн тусламжтайгаар та бараг бүх боломжит тооцооллыг хөрвүүлсэн хэлтэй харьцуулах боломжтой хурдаар хийх боломжтой (мэдээж тодорхой анхааруулгатай).

Тайлбарласан хэлийг ашиглахын гол давуу тал бол хөгжлийн хурд юм. Python болон R нь ижил төстэй үйл ажиллагаанд хүрэхийн тулд илүү цөөн мөр код шаарддаг. Нэмж дурдахад тэд ихэвчлэн интерактив консол дээр суурилсан хөгжүүлэлтийг зөвшөөрдөг бөгөөд энэ нь дараалсан хөгжүүлэлтийн процессыг ихээхэн хурдасгадаг.

Хөгжүүлэгчийн цаг хугацаа (ялангуяа тэр ганцаардмал хүн бол) маш үнэ цэнэтэй бөгөөд HFT бизнест бүх юмны хурд, хүн бүрийн хурд үргэлж нэгдүгээрт байдгийг харгалзан үзэхэд нээлттэй технологийн стекийг сайтар судалж үзэх нь зүйтэй юм. Ижил Python болон R нь гайхалтай нийгэмлэгтэй бөгөөд алдартай учраас сайн дэмжигддэг. Нэмж дурдахад тэдний талаар асар их хэмжээний баримт бичиг бий.

Гэсэн хэдий ч, нээлттэй эхийн програм хангамж нь өмчийн бүтээгдэхүүнтэй адил арилжааны дэмжлэггүй байдаг бөгөөд тэдгээр нь хэрэглэгчдэд ээлтэй интерфэйс дээр ажилладаг. Линукс сервер дээр та график удирдлагын интерфейсийг бараг хэзээ ч харахгүй, бүх зүйлийг консолоор дамжуулан хийх шаардлагатай болно. Мөн зарим ажлын хувьд Python, R зэрэг хэлүүд хэтэрхий удаан байж болно. Жишээлбэл, хурдыг сайжруулахын тулд C++ хэлтэй нэгтгэх механизмууд байдаг боловч энэ нь олон хэлээр програмчлалын талаар тодорхой туршлага шаарддаг.

Хэдийгээр өмчийн програм хангамжийн ертөнцөд та бүтээгдэхүүний хувилбарыг шинэчлэх үед асуудалтай тулгардаг ч нээлттэй эхийн програм хангамжийн хувьд ийм бэрхшээлүүд илүү нийтлэг байдаг. Ерөнхийдөө нээлттэй системийг удирдахад илүү төвөгтэй байдаг.

Хайрцагт юу байна

Хэл нь ямар номын санг агуулдаг вэ, тэдгээр нь хэр сайн вэ? Энэ нь хуучин хэлүүд шинэ хэлнээс давуу талтай байдаг. C++, Java, Python нь удаан хугацааны туршид хөгжиж ирсэн бөгөөд сүлжээний програмчлал, HTTP, үйлдлийн системтэй харилцах, график интерфэйс, ердийн илэрхийлэлд зориулсан номын сан гэх мэт өргөн хүрээний сангуудтай.

C++ нь олон өндөр гүйцэтгэлтэй өгөгдлийн бүтцийг агуулсан STL (Стандарт Загварын Номын сан)-аараа алдартай. Python нь өөрийн стандарт номын сангаар дамжуулан бараг бүх төрлийн систем, протоколтой (ялангуяа вэб дээр) ажиллах чадвараараа алдартай. R нь олон тооны статистик болон эконометрикийн хэрэгслүүдтэй бөгөөд MatLab нь шугаман алгебрийн код бичихэд маш тохиромжтой (үүнийг жишээ нь багцын оновчлолын систем болон үнийн саналаас олж болно.

Мөн энэ чиглэлтэй холбоотой технологиуд, гэхдээ үнэндээ та өөрийн арилжааны хөтөлбөрийг бий болгож болох програм хангамжийн талаар бид хэзээ ч ярьж байгаагүй. Засвар дор - Оросын хөрөнгийн зах зээлд тохирсон механик арилжааны системийг бий болгох нийтлэг програм хангамжийн хэрэгслүүдийн тойм.

Баялгийн лаборатори

Fidelity International-ийн бүтээгдэхүүн нь худалдааны стратегийг техникийн шинжилгээ, боловсруулах, турших хамгийн хүчирхэг хэрэгслүүдийн нэг юм. Түүнд суулгасан програмчлалын хэл нь WealthScript бөгөөд Паскальтай маш нийтлэг зүйл байдаг бөгөөд хамгийн сүүлийн хувилбарууд нь C # болон бусад .NET хэлүүдийг ашигладаг.

Оросын хөрөнгийн зах зээл дээр үүнийг брокерийн терминалуудтай хамт ашигладаг - Wealth-Lab-д хэрэглэгч өөрийн стратегийг тодорхойлдог бөгөөд үүний дагуу програм нь гүйлгээ хийх хүсэлтийг үүсгэдэг. Интеграцид зориулсан тусгай номын сангуудын тусламжтайгаар эдгээр захиалгыг арилжааны терминал руу шилжүүлж, тэндээс гүйцэтгэдэг. Объектив байдлаар ийм схем нь нэлээд хэдэн хязгаарлалт тавьдаг тул Wealth-Lab нь Оросын биржийн хувьд хамгийн тохиромжтой сонголт гэж нэрлэгдэх боломжгүй юм.

MetaStock

Өөр нэг гадаадын бүтээгдэхүүн. MetaStock нь өөрийн томьёо үүсгэх төрөл бүрийн үзүүлэлт, хэрэгслүүдийн том номын санг агуулдаг. Давуу талуудаас - нэлээд энгийн програмчлалын хэл. Нэмэлт модулиудын тусламжтайгаар та худалдан авах / худалдах захиалга үүсгэж болно. Wealth-Lab-ийн нэгэн адил үүнийг Оросын зах зээлд нэмэлт номын сангийн тусламжтайгаар худалдааны терминалуудтай хамт ашигладаг бөгөөд энэ нь ойролцоогоор ижил асуудлуудыг дагуулдаг. Сул тал нь програмчлалын хэлний энгийн байдал нь арилжааны нарийн төвөгтэй стратегийг тайлбарлах боломжийг олгодоггүй явдал юм.

Омега судалгаа

Механик худалдааны системийг бий болгох, турших техникийн шинжилгээний хэрэгсэл. Та роботуудыг суурилуулсан Easy Language програмчлалын хэлээр бичиж болно (синтакс нь Паскальтай төстэй). Дээрх хоёр хөтөлбөрийн нэгэн адил Оросын хөрөнгийн зах зээл дээр "жийргэвч" -ийн тусламжтайгаар ашиглагддаг. Сул талуудын дунд ийм дизайны үйл ажиллагааны тогтвортой байдал, мөн Омега судалгааг бий болгох нарийн төвөгтэй байдал орно. Нэмж дурдахад, програм нь зөвхөн өөрийн өгөгдлийн форматаар ажилладаг бөгөөд текст файл эсвэл бусад техникийн шинжилгээний програмын форматаас хөрвүүлэхийг дэмждэггүй.

Гадаадын бүтээгдэхүүнээс гадна дотоодын хөрөнгийн зах зээл дээр Оросын хөгжүүлэгчдээс хэд хэдэн програм хангамжийн шийдлүүд байдаг. Мөн тэдний цөөн хэдэнийг энд дурдъя.

TSLab

Өмнөх төслийн нэгэн адил TSLab нь Оросын хөрөнгийн зах зээлд тусгайлан "хурцалсан" механик арилжааны системийг бий болгох, эхлүүлэх платформыг боловсруулж байна. Програмчлалын ур чадваргүй худалдаачдад зайлшгүй шаардлагатай зүйлсийн нэг бол арилжааны алгоритмыг график хэлбэрээр бүртгэх чадвар юм.

stocksharp

Үнэгүй (үндсэн хувилбарт) StockSharp нээлттэй эхийн платформ болон түүнд суурилсан бүтээгдэхүүн (S#. Studio). Нэрнээс нь харахад та C# хэл дээр програмчилж болно. Давуу талуудаас - төрөл бүрийн худалдааны терминал, брокерийн системд холбогдох чадвар.

амьд худалдаа

Санкт-Петербургийн Cofite компанийн бүтээгдэхүүний шугам. API-ийн ачаар LiveTrade Terminal худалдааны терминалыг ашиглан та .NET платформ дээр хэрэгжсэн роботуудыг ажиллуулах боломжтой. Оросын хэд хэдэн брокерын арилжааны терминал, системд (SmartCOM API ашиглан ITinvest системийг оруулаад) холбогдох боломжтой. Нэмж дурдахад Cofite нь бүхэлдээ робот бүтээхэд зориулагдсан Robotlab бүтээгдэхүүнтэй. TSLab-ийн нэгэн адил арилжааны алгоритмуудыг харааны бүтээгч ашиглан хэрэгжүүлж болно. Үүний үр дүнд роботын блок диаграммыг терминал дээр ажиллуулж болно.

SmartX

SmartX худалдааны терминал нь ердийн утгаараа энгийн терминал биш, харин Америкийн Modulus Financial Engineering компаний бүтээсэн вектор хэл болох TradeScript програмчлалын скрипт хэлийг багтаасан нэгдсэн програм хангамжийн бүтээгдэхүүн юм. АНУ) тусгайлан худалдааны робот бүтээхэд зориулагдсан.

Терминалын сонирхолтой функцуудын дунд:

  • Арилжааны стратегийг дахин шалгах чадвар - роботыг түүхэн өгөгдөл дээр турших. Үүний зэрэгцээ эдгээр архивлагдсан өгөгдлийг бусад (ихэвчлэн төлбөртэй) эх сурвалжаас ачаалах шаардлагагүй - терминалаар автоматаар ачаалагддаг.
  • Хачигт өгөгдөл дээр үндэслэн алгоритм бүтээх чадвартай.
  • Өөр нэг сонирхолтой онцлог нь арилжааны стратегийг одоогийн биржийн өгөгдлийг ашиглан "явшин" турших чадвар юм, гэхдээ бирж дээр захиалга хийхгүйгээр виртуал гүйлгээ хийх цаг, үнэ, үр ашгийг тусад нь харуулах болно. цонх.

Скриптийн хэлийг сурахад маш хялбар бөгөөд та үүнийг мэддэг болсноос хойш хэдхэн цагийн дотор энгийн роботуудыг програмчилж эхлэх боломжтой. Нэмж дурдахад, олон алгоритмууд нь Metastock-тай ижил төстэй байдаг тул хэрэв хэрэглэгч энэ програмыг өмнө нь мэддэг байсан бол дахин сурах шаардлагагүй болно.

Энгийн TradeScript роботын жишээ:

Дохио худалдаж авах # Тогтворгүй байдал буурч, хэмжээ болон үнэ өсөх хандлагатай байвал худалдаж аваарай.< REF(HistoricalVolatility(CLOSE, 15, 365, 2), 15) AND TREND(VOLUME, 5) = UP AND TREND(CLOSE, 40) = UP Sell Signals # Продаем, если волатильность снижается, а объем и цена имеют нисходящий тренд HistoricalVolatility(CLOSE, 15, 252, 2) < REF(HistoricalVolatility(CLOSE, 15, 365, 2), 15) AND TREND(VOLUME, 5) = UP AND TREND(CLOSE, 40) = DOWN
Робот бүтээх энэ аргын давуу тал нь ижил Wealth-Lab болон Metastock-аас ялгаатай нь нарийн төвөгтэй бүтэц бий болгох шаардлагагүй бөгөөд захиалгыг терминал руу шилжүүлэхийн тулд нэмэлт номын сан хэлбэрээр "пад" ашиглах шаардлагагүй юм - бүх зүйл баригдсан. зуучлалын арилжааны системд шууд холбогдсон.

Нэмж дурдахад, хэрэглэгч процессорын цагийн хурд болон компьютерийн санах ойн зөвшөөрөгдсөн олон алгоритмыг нэгэн зэрэг ажиллуулах боломжтой. Скрипт хэлний олон тооны үг, операндуудыг харгалзан үзвэл энэ нь ямар ч тооны нарийн төвөгтэй арилжааны стратегийг бий болгох чадвартай гэсэн үг юм.

smartcom

Манай брокерийн системийн API (дэлгэрэнгүйг үзнэ үү), үүний тусламжтайгаар та ямар ч төвөгтэй арилжааны роботуудыг бүтээх боломжтой. AmiBroker-д зориулсан нэмэлт залгаас байдаг бөгөөд энэ нь өгөгдлийн шинжилгээг ихээхэн хөнгөвчилдөг.

Өнөөдрийн хувьд энэ л байна. Дараах сэдвүүдэд бид арилжааны робот бичих талаар илүү дэлгэрэнгүй ярьж, янз бүрийн хэрэгслийг ашиглан бүтээсэн тодорхой механик системүүдийн жишээг өгөх болно. Анхаарал тавьсанд баярлалаа!

Энэ нийтлэлд би танд дэлгэрэнгүй хэлж, өмнөх нийтлэлд хэлэлцсэн худалдааны роботыг хэрхэн бичихийг харуулах болно. Энэ нь автомат солилцооны системийг бий болгох анхны бөгөөд хамгийн хялбар хичээл байх болно. Гэсэн хэдий ч миний тодорхойлсон бүх үйлдлүүдийг хийсний дараа үр дүн нь жинхэнэ худалдааны робот болно.

Би ус асгахгүй, гэхдээ би шууд гол руугаа явна. Тиймээс та юуны түрүүнд Delphi 7-г татаж аваад суулгах хэрэгтэй. Та үүнийг холбоосоор хийж болно - . Үүний дараа shell програмтай хавтсыг нээнэ үү. Хөтөлбөрийг дараах холбоосоор үзэж, захиалах боломжтой.

Бид TradeRobot.dpr файлыг сонирхож байна. Үүнийг нээгээд доорх зурагт юу байгааг харна уу.

"Робот" гэж бичсэн цонх нь Form1, энгийнээр хэлбэл Windows цонх юм. Хөгжүүлэгчийн хувьд энэ нь иймэрхүү харагдаж байна. Үүн дээр бид роботын удирдлага, удирдлагыг байрлуулах хэрэгтэй, тухайлбал: хоёр товчлуур, гурван жижиг эгнээний цонх. Эхний товчлуур нь QUIK-тэй холбогдох, хоёр дахь товчлуур нь роботыг эхлүүлэх, зогсоох үүрэгтэй. Цонхны мөрүүд нь сүүлийн худалдан авалт, борлуулалтын хэмжээ, програмын одоогийн байдлын талаарх мэдээллийг харуулах болно.

Маягт дээр шаардлагатай элементүүдийг байрлуулахын тулд та Стандарт таб дээрх товчлуур дээр дарах хэрэгтэй.

Дараа нь маягтын аль ч хэсэгт дарна уу. Delphi товчлуурын нэрийг өөрчлөхийг санал болгох бөгөөд бид үүнийг ашиглах болно. Үүнийг ConnectButton гэж нэрлэе.

Үүний нэгэн адил хоёр дахь товчлуурыг үүсгээд StartButton гэж нэрлэе.

Одоо 3 эгнээ цонх үүсгэцгээе. Үүнийг хийхийн тулд ижил Стандарт таб дээрээс тохирох дүрсийг (зураг дээрх шиг) сонгоод маягт дээр байрлуулна уу.

Тиймээс бид гурван удаа давтаж, дараах байдлаар дууддаг.
- зүүн дээд BuyVolumeEdit
- баруун дээд SaleVolumeEdit
- доод StatusEdit

Одоо та элементүүдийн шошгыг өөрчлөх хэрэгтэй. Энэ нь ObjectInspector цонхонд, Caption мөрийн товчлуурууд, Text мөрийн цонхны мөрөнд хийгддэг.

Энэ нь доорх зураг шиг харагдах ёстой.

Одоо бид товчлуур бүрт скрипт бичих хэрэгтэй. Үүнийг хийхийн тулд Connect to QUIK товчлуур дээр давхар товшвол доорх зурган дээрх шиг код нээгдэнэ.

Эхлэхээсээ өмнө дараах текстийг оруулна уу:

Var EMsg: Тэмдэгтийн массив; EMsgSz:DWord; ExtEC,rez:LongInt; зам:мөр; dOrderNum:double; массаж: утас;

Эхлэл ба төгсгөлийн хооронд дараахь зүйлийг оруулна уу.

EMsgSz:=255; ExtEC:=0; rez:=-1; зам:= "C:\Quik-Junior-Zerich\"; FillChar(EMsg, SizeOf(EMsg), 0); rez:=холбох(PChar(зам), ExtEC, EMsg, EMsgSz); Массаж:= ResultToString(rez ба 255); хэрэв Массаж = "ГҮЙЦЭТГЭХ" бол StatusEdit.Text эхлэх:= "Холбогдсон..."; Статус:= "Холбогдсон..."; end else begin StatusEdit.Text:= "Бүтэлгүйтлээ..."; Статус:= "Бүтэлгүйтлээ..."; Төгсгөл;

Үүний үр дүнд та дараахь зүйлийг авах ёстой.

Улаан доогуур зураас нь QUIK хүрэх замыг тэмдэглэнэ. Хэрэв танд өөр зам байгаа бол энэ газрын замыг өөрчил.

Одоо START товчлуур руу шилжье. Скрипт дээр давхар товшоод эхлэл ба төгсгөлийн хооронд дараахыг буулгана уу.

Хэрэв StartButton.Caption = "ЭХЛЭХ" бол Статус:= "Эхэлсэн"; StartButton. Caption:= "STOP"; end else begin Төлөв:= "Зогссон"; StartButton. Caption:= "START"; Төгсгөл; StatusEdit.Text:= Status;

Энэ нь дараах байдлаар гарах ёстой.

Одоо глобал хувьсагчдыг бичье. Үүнийг хийхийн тулд кодыг олъё:

Тэгээд дараах кодыг оруулна уу:

DataTable: мөрийн массив; BuyVolume, SaleVolume: Бодит; Статус: Мөр;

Одоо ObjectInspector дээр бид Form1-ийг сонгоод Events таб дээрээс шоуны мөрийг олдог. Кодыг нээхийн тулд давхар товшино уу. Эхлэл ба төгсгөлийн хооронд дараахь зүйлийг оруулна уу.

SetLength(Өгөгдлийн хүснэгт,2000000,10);

Одоо бид доорх зурган дээрх шиг код дотор байр олох хэрэгтэй.

var i, j-ийн дараа: бүхэл тоо; дараахыг буулгана уу:

зам, гүйлгээ:мөр; dOrderNum:double;

Эхлэсний дараа дараах байдалтай байна.
StatusEdit.Text:= Status;

Дараа нь If(Data.Cells<>"0") болон (Data.Cells<>"0,00") дараа нь кодыг буулгаж эхлээрэй:

DataTable:= Data.Cells; хэрэв DataTable<>"" Дараа нь BuyVolume эхэлнэ:= StrToFloat(DataTable); SaleVolume:= StrToFloat(DataTable); Хэрэв StartButton. Caption = "STOP" бол (Худалдан авах хэмжээ > 10) болон (Төлөв) байвал эхэлнэ үү.<>"Худалдан авах") дараа нь гүйлгээг эхлүүлнэ үү:="ACTION=NEW_ORDER; TRANS_ID=1; CLASSCODE= SPBFUT; SECCODE= SiU6; ACCOUNT= SPBFUT00553; CLIENT_CODE= ; TYPE=M; ҮЙЛ АЖИЛЛАГАА= B; QUANTITY=1; PRICE=0;" ; Статус:= "Худалдан авалт"; dOrderNum:=0; send_async_transaction_test(гүйлгээ, dOrderNum); Төгсгөл; хэрэв (Хямдралын хэмжээ > 10) болон (Төлөв<>"Хямдрал") дараа нь гүйлгээг эхлүүлнэ үү:="ACTION=NEW_ORDER; TRANS_ID=1; АНГИЛАЛ = SPBFUT; SECCODE= SiU6; БҮРТГЭЛ= SPBFUT00553; CLIENT_CODE= ; TYPE=M; ҮЙЛ АЖИЛЛАГАА= S; QUANTITY=1; PRICE=0;" ; Статус:= "Хямдрал"; dOrderNum:=0; send_async_transaction_test(гүйлгээ, dOrderNum); Төгсгөл; Төгсгөл; Төгсгөл; BuyVolumeEdit.Text:= DataTable; SaleVolumeEdit.Text:= DataTable;

Энэ нь дараах байдлаар гарах ёстой.

АНХААР!

Мөрүүдэд (тэдгээрийн хоёр нь байдаг):

Гүйлгээ:="ACTION=NEW_ORDER; TRANS_ID=1; АНГИЛАЛ = SPBFUT; SECCODE= SiU6; БҮРТГЭЛ= SPBFUT00553; CLIENT_CODE= ; TYPE=M; ҮЙЛ АЖИЛЛАГАА= B; Тоо хэмжээ=1; ҮНЭ=0;";

ACCOUNT= параметрт та дансаа зааж өгөх хэрэгтэй. Одоо миний SPBFUT00553 тэнд жагсаагдсан байна.

Бүх зүйл, робот бичигдсэн байдаг. Одоо үүнийг эмхэтгэх л үлдлээ, i.e. дууссан EXE програм болж хувирна. Үүнийг хийхийн тулд Play-тэй төстэй ногоон Run (эсвэл F9) товчийг дарна уу.

Худалдаачны тархи ер бусын байдлаар ажилладаг. Санхүүгийн зах зээлээс хол байгаа хүн ухаалаг, урьдчилан таамаглах боломжтой үйлдэл хийдэг. Зөвхөн лааны суурьтай хослуулан боддог хүн гарч ирвэл үр дагаврыг урьдчилан таамаглахад илүү хэцүү байдаг. Хувийн асуудлын хувьд амьдралын тэргүүлэх чиглэлийг нурааж, импульс ихсэх нь худалдаачдын сайн мэддэг муу зуршил юм. Худалдааны үйл явц нь өөрөө төгсгөл болж, гавлын ясны доторх биологийн компьютер нь эцэс төгсгөлгүй мөчлөгт орж, далайн эргийн хөлөг онгоцны зогсоол дээр бэхлэгдсэн өөрийн гэсэн дарвуулт завины тухай хийсвэр санаан дээр өлгөөтэй байдаг. харшийн далан.

Эхлэхийн тулд, өөрийн арилжааны стратегийг автоматжуулах санаа нь санаа зоволтгүй оршин тогтнох эсвэл худалдаачны тулгамдсан асуудлаас ангижрах боломжийг олгодоггүй. Хэрэв та зах зээл хэрхэн ажилладаг талаар ямар ч ойлголтгүй бол робот бүтээхэд цаг хугацаа, мөнгөө зарцуулах нь таны банкны дансыг алтан галлеоноор дүүргэхгүй, харин таныг ердийн дундаж давхаргын харгис бодит байдалд буцааж өгөх болно.

Тиймээс дэмий цаг хугацаа бол туршлага юм. Цаг хугацаа бол мөнгө. Товчхондоо та цагаа зарцуулж, туршлага худалдаж авдаг. Гэхдээ боломжийн хүний ​​хувьд та тармуурыг тойрч гарах, ялангуяа ийм боломж байгаа тохиолдолд алдаа гаргахгүй байхын тулд нэмэлт мөнгө хэмнэхийг хүсэх байх. Энэ үед би та бүхнээс бага зэрэг цагийг хүсэх хэрэгтэй болно, учир нь би танд хэрхэн бүтээх тухай асуултанд үнэхээр бэлдэхийг хэлэх болно. мөнгө хэвлэх машинхудалдааны робот, мөн мэдээжийн хэрэг, хэрхэн олон алдаа гаргахгүй байх талаар.

1. Бид нэгэн санаагаар форекс робот бүтээж эхэлдэг

Зах зээл дээр худалдаа хийх робот бүтээх нь санааг тасралтгүй эрэлхийлэх, ялангуяа Ариун Грейлийг хайх явдал юм. Гэгээрээгүй иргэдийн мэдэгдлээс ялгаатай нь Грейлийг маш энгийнээр олдог - технологийн дэвшилд "баярлалаа" гэж хэлье. Google-ээс "Holy Grail Forex"-ийг хайж үзээрэй - таны мөрөөдлийн зөвлөх энэ асуудлын эхний хуудсанд байгаа бөгөөд энэ нь үнэ төлбөргүй байдаг.

Үнэндээ энэ түүх дуусч болох байсан. Хэрэв төгс мэргэжилтэн зөвлөх аль хэдийн байгаа бол яагаад хайсаар байх вэ? Гэхдээ дараа нь хоёр дахь асуулт гарч ирнэ: хэрвээ хамгийн тохиромжтой зөвлөх нь аль хэдийн олдсон бол Африкт ундны усны хомсдол яагаад хэвээр байна вэ? Хэрэв хариулт нь танд ойлгомжтой бол баяр хүргэе, та боломжийн худалдаачин болох эхний шатыг давж, эхлэгч эсвэл алго-фанатикийн түвшинг даван туулж, хөгжлийн хэтийн төлөвийг хардаггүй, зөвхөн бизнест анхаарлаа хандуулдаг. үр дүн.

Таны шинжээчийн зөвлөхийн санаа үнэхээр өвөрмөц бөгөөд аналоги байхгүй гэдэгт би итгэлтэй байна. Гэхдээ ямар ч тохиолдолд бусад зохиогчдын ижил төстэй бүтээн байгуулалтыг олохыг оролдохгүй байх нь тэнэг хэрэг юм - хийсэн судалгааны цар хүрээг та нүүр тулан уулзах хүртэл үнэлэхэд хэцүү байдаг. Хүн төрөлхтөн технологийн өвөрмөц байдал руу шилжиж байгаа бөгөөд шинэ бүтээн байгуулалтууд маш хурдан нэвтэрч байгаа тул бүх материалыг ойлгох боломжгүй байдаг. Хэрэв ийм бүтээн байгуулалт хийгдээгүй байгаа бөгөөд өөрийн судалгаагүйгээр санаагаа туршиж үзэх боломжгүй бол дараагийн шатанд шилжих цаг болжээ.

2. Хөгжлийн өмнөх 4 чухал асуулт

Гэхдээ үүнээс өмнө дараах асуултуудад өөрөө хариулахыг хичээгээрэй.

  • Таны арилжааны санаа юу вэ?
  • Зөвлөх ямар ажлуудыг шийдвэрлэх вэ, энэ нь арилжаанд ямар давуу талтай вэ?
  • Магадгүй танд график үзүүлэлт эсвэл туслах скрипт хэрэгтэй байна уу?
  • Энэ санаа нь техникийн хувьд хэр хэрэгжих боломжтой вэ, та түүний нарийн төвөгтэй байдлыг бие даан үнэлж чадах уу?

Эдгээр нь маш чухал асуултууд бөгөөд танд маш их цаг хугацаа хэмнээд зогсохгүй өөрийн санаагаа ойлгоход бага зэрэг ойртуулах болно. Та зах зээлд хэрэгцээтэй хүмүүст мөнгө тараах гэж ирээгүй нь лавтай, гэхдээ чамд өөр зорилго бий.

Таны сонгосон арилжааны платформ хэрхэн ажилладаг, ямар стратегиар ашиг олох вэ гэдгээ сайтар мэдэж, ойлгох нь хамгийн тохиромжтой. Аливаа тодорхой бус тодорхойлолт эсвэл үл тоомсорлож буй мэт санагдах мөчүүд нь эхлээд харахад хөгжлийн дараагийн үе шатанд муугаар эргэж, арилжааны дансанд хохирол учруулах болно. Удаан мартагдсан арилжааны санаагаа сэргээхээс бүү ай, гэхдээ бэлэн шийдлүүд дээр тоглохыг бүү оролд. Зах зээл маш тогтворгүй бөгөөд тодорхойлолтоор бол байнгын хөдөлгөөнд байдаг бөгөөд өрсөлдөөн байнга чангарч байдаг.

Валютын зах зээлд анхлан суралцаж буй хүмүүст хариулт нь тодорхой бус, эсвэл туршлагагүйгээс үүдэлтэй маш олон асуулт байдаг. Шинэхэн худалдаачин хүний ​​хувьд арилжааны эмх замбараагүй байдлын тухай ойлголтыг насан туршийн арилжааны захиалгаар солихын тулд Билл Уильямсын нэг ном уншихад хангалттай. Дараа нь ийм хүмүүс яагаад энд худалдаж авахгүй байгаа юм бэ гэж гайхаж, харин энд зарж болохгүй гэж гайхаж, програмистуудаас хоёр хөдөлж буй дундажийн огтлолцлын зөвлөхийг захиалж өгдөг. Гэхдээ сургалтын эхний үе шатанд үүнийг бэлэн хөгжүүлэлтийн хэрэгслүүдийн өршөөлөөр бүрэн орхиж болно. Эдгээрийн нэг нь MQL5 Wizard бөгөөд MetaTrader 5-д зориулсан шинжээчийн зөвлөхүүдийг бий болгох шидтэн юм.

Энгийн зүйлийг хэрэгжүүлэхийн тулд Мастер нь хамгийн тохиромжтой. Та ямар ч ид шидийн чадвартай байх шаардлагагүй - энд програмчлалын ур чадвар шаардлагагүй. Хэд хэдэн энгийн алхмууд, мөн зөвлөх бэлэн байна. Бэлэн зөвлөхийг ижил MetaTrader терминал дээр туршиж үзэх боломжтой. Энгийн мөхлөг үйлдвэрлэхэд зориулж хураагчийг байлга.

Тиймээс, эхлэгчдэд MetaTrader 5-ыг ажиллуулаад програмын засварлагч руу очно уу (F4 товчлуур). Дээд цэснээс "Create" товчийг товшоод гарч ирэх харилцах цонхноос шинэ зөвлөхийг сонго.

Арилжааны дохионы модулиудыг нэмж байна. Модулиуд нь стандарт болон хамт олны боловсруулсан аль аль нь байж болно (та энэ үйл явцад оролцох боломжтой).

Үнэн хэрэгтээ бүх стандарт дохиог албан ёсны вэбсайт дээрх онлайн тусламжид маш сайн тайлбарласан болно. Та мөн тэндээс захиалгат хувилбаруудыг татаж авах боломжтой.

Тохиромжтой үзүүлэлтийг сонгосны дараа та түүний оролтын параметрүүдийг зааж өгөх хэрэгтэй. Энд та дохионы жинг бусадтай харьцуулж, хэрэв тэдгээр нь олон байгаа бол зааж өгч болно.

Индикаторын утгуудад тулгуурлан тогтмол зогсолт хийх эсвэл хэлэлцээрийг хаах нь таны сонголт юм.

Мөн тогтсон багц буюу гүйлгээний хэмжээг хадгаламжийн хувиар сонгох боломжтой. Хамгийн эрсдэлтэй шинээр ирсэн хүмүүсийн хувьд стратеги шалгагч дээр хэд хэдэн нэмэлт дамжуулалт хийхэд танд сая саяыг авчрах геометрийн явцтай нэг нь бас бий.

Үнэндээ та Metatrader овгийн гишүүн биш байсан ч санаа зовох хэрэггүй, танд хэрэгтэй арилжааны платформыг бүтээгч аль хэдийн бичигдсэн байна. Гол нь боломж, хүсэлд л байгаа юм. Ёс суртахуун нь энгийн: аль хэдийн хэрэгжүүлсэн зүйлийг хэрэгжүүлэх гэж бүү оролд. Бусдын хөдөлмөрийг үл тоомсорлох нь өртөг өндөртэй тул шинжлэх ухааныг шинээр бий болгох шаардлагагүй юм.

Тиймээс, та арилжааны туршлагатай, арилжаанд өөрийн санаагаа туршиж үзсэн эсвэл бодит зах зээл дээр хэрхэн ажиллах талаар үнэн зөв ойлголттой болсон. Тиймээс стратегийн албан ёсны дүрмийг бичих цаг болжээ. Ихэнхдээ энэ үе шатанд хүмүүнлэгийн ухааны ихэнх дагалдагчдын хувьд асуудал эхэлдэг - хүмүүс өөрсдийн толгой дахь туйлын төгс боловсруулсан схемийг техникийн хэл рүү орчуулах үед ажиллахаа больсон үл ойлголцлын ханатай тулгардаг.

Энэ асуудал маш өргөн тархсан тул хийсвэр санааг тодорхой зохион байгуулалттай дүрмийн албан ёсны хэл рүү хөрвүүлэх бүхэл бүтэн салбарыг бий болгосон бөгөөд угаасаа үнэ төлбөргүй биш юм. Үнэн хэрэгтээ, хамгийн бага бэлтгэлтэй бол та өөрийн Forex роботын араа механизмыг хамгийн бага нарийвчлалтайгаар ойлгодог тул ийм нарийн төвөгтэй байдалтай тулгарахгүй, гэхдээ хөгжүүлэлт нь тодорхой ажил шаарддаг.

Үнэн хэрэгтээ, зөв ​​боловсруулсан даалгавар бол ажлын тал нь юм. Гэсэн хэдий ч энэ нь програмистын ажил биш юм. Хэрэв та програмистаас танд даалгавар бичихийг хүсэх юм бол ихэнх тохиолдолд үл ойлголцол, дургүйцэл гарахад бэлэн байгаарай. Энэ бол санааг боловсруулагч нь түүнийг яг албан ёсны болгох үүрэгтэй бөгөөд ямар нэгэн байдлаар хэрэгжүүлэгч биш - хэрэв хүсвэл доод түвшний тушаалын хэл рүү орчуулагч юм.

Худалдааны зөвлөхийг бий болгох муу ажлын жишээ бол түүний байхгүй байх явдал юм. Үйлчлүүлэгчийн зорилго нь ойлгомжтой байж болно: үзүүлэлт байдаг, та арилжааны робот бичих хэрэгтэй, гэхдээ яах вэ?

"Ажлын явц болон зөвлөхийнхөө санааг хэрэгжүүлэхтэй шууд холбоотой бүх зүйлийг сайтар судалж үзээрэй"

Хэлэлцээрийг хэрхэн хаах вэ? Түүнийг хэрхэн дагалдан явах вэ? Ямар боть сонгох вэ? Юу хийх вэ? Программист сэтгэцийн чадваргүй гэдгийг та ойлгох хэрэгтэй. Хэрэв олдвол надад мэдэгдээрэй, ийм хүмүүс алга болохгүй.

Шаардлагатай нарийн ширийн зүйлгүйгээр бүтээл хийх ажлын даалгаврыг хараад чөлөөт ажилтан өөрийн тайлбарыг хийх бөгөөд зарим тохиолдолд үйлчлүүлэгчийн жинхэнэ санаа бодлыг таах боломжтой болно. Гэхдээ дүрмээр бол ийм давж заалдах гомдол нь хоёр гомдсон тал, гэрээг цаашид цуцлах замаар арбитрын шүүхэд хандсанаар дуусдаг.

Ёс суртахуун: Даалгавардаа илүү дэлгэрэнгүй оруулах тусам үүнийг ойлгох, ойлгох, эцэст нь хэрэгжүүлэхэд хялбар байх болно.

7. Уран бүтээлчийн сонголт

Хэрэв та чөлөөт солилцооны туршлагагүй бол тамын экваторын дэд хувилбарыг төсөөлөөд үз дээ. Үнэн хэрэгтээ бүх зүйл тийм ч аймшигтай биш боловч зарим нюансуудыг анхаарч үзэх хэрэгтэй.

Нэгдүгээрт, шинжээчийн зөвлөхийг бичихдээ үнийн бодлого маш тодорхойгүй байж болно. Тохиромжтой програмист авахгүй тодорхой доод хэмжээ байдаг, гэхдээ үүнтэй зэрэгцэн энэ хамгийн бага утга нь маш их хэлбэлздэг бөгөөд заримдаа хамгийн бага нь дээд тал нь болдог (тиймээ, энэ нь бас тохиолддог).

Та хэтэрхий өгөөмөр байж болохгүй, энэ нь хүн мөнгөтэй болохыг шууд илтгэж байгаа бөгөөд энгийн ажил хийхийн тулд та гурван арьсыг урж хаях нь гарцаагүй. Хэрэв та ажлын өртөгийг ойлгохгүй байгаа бол итгэмжлэгдсэн хүмүүсээсээ үүнийг авч үзээрэй. Та тэднээс юу ч захиалахгүй байсан ч туршлагатай хөгжүүлэгчидтэй холбоо бариарай. Ирээдүйд энэ нь хэнтэй холбоо барьж болох, хэнтэй холбоо барих ёсгүйг тодорхойлоход тусална.

Хоёрдугаарт, Мэргэжилтнүүдийн зөвлөхийнхөө хөгжүүлэгчид ямар зүйл нь ойлгомжгүй байгаа, аль нь тодруулах шаардлагатай, роботын нэг буюу өөр хэсгийн нарийн төвөгтэй байдал юу болохыг асуухаас бүү ай. Техникийн даалгаварт байгаа бүх зүйл танд ойлгомжтой байх шиг байна, гэхдээ жүжигчид ихэвчлэн үндсэн үл ойлголцолтой тулгардаг.

“Мөрөөдлийн мэргэжилтэн зөвлөхөө бий болгох үйл явцыг хянах нь таны ашиг сонирхолд нийцнэ. Чухал үеийг асууж, бета туршилтанд оролцож, техникийн дэлгэрэнгүй мэдээллийг авахаас бүү эргэлз."

Нэг энгийн жишээ бол файлын формат, тэдгээрийн утгыг буруу ойлгох явдал юм. Жишээ нь: "Надад .dll номын сан байна (.exe файл эсвэл .ex4 програм), та үүнийг хурдан засаж чадах уу, би чамд нэлээн пенни өгнө үү? Үгүй гэж үү? Тэгээд яагаад? Василий намайг 5 доллараар зөвлөх болгосон, чи муу хөгжүүлэгч юм!

Ёс суртахуун: ажлын явц, санаагаа хэрэгжүүлэхтэй шууд холбоотой бүх зүйлийг судлахыг хичээ. Энэ нь роботын ажлыг өөрөө илүү сайн ойлгоход туслах төдийгүй жүжигчидтэй харилцах үйл явцыг улам хялбаршуулах болно. Ажилд үргэлж дор хаяж хоёр тал оролцдог бөгөөд хэрэв та арилжааг өөрийн үндсэн мэргэжил болгохоор төлөвлөж байгаа бол таны болон таны эргэн тойронд байгаа хүмүүсийн тэвчээрийг хадгалах ёстой.

Хүлээн авах үе шат нь хамгийн хэцүү байдаг. Жүжигчин бүр уй гашуугаараа тайвшруулах шөл ууж, хуанлийн өдрийг хар тэмдэглэгээгээр тэмдэглэж, бүх хугацааг аль хэдийн дуусгасан захиалгыг засахыг дахин шаардаж байгаа эсэхийг шалгаарай. Орчлон ертөнцийн нэгэн адил төгс төгөлдөрт хязгаар гэж байдаггүй, гэхдээ тодорхой мөчид та цугларч, даалгавар дууслаа гэж хэлэх хэрэгтэй.

Худалдаачин хүний ​​хувьд алтан уулсаас туссан гэрэл нь техникийн дэвшилтэт сэтгэлгээг бий болгож, дотоод суут ухааны үр шимийг асар сайхан дүрслэлээрээ гэрэлтүүлдэг гэж би ойлгож байна. Яахав, мөнгө олдоггүй зөвлөх нь зүгээр л толгойдоо багтахгүй, хийж байгаа ажлын дүр төрхийг бий болгодог. Бүтэхгүй зүйлээ яаж төлөх вэ?

Гүйцэтгэгч талаас нь захиалгын бүх цэгүүд дууссаны дараа уг ажлыг яг таг өлгөдөг. Програмистын ажлын даалгавар бол тодорхой зурсан зам бөгөөд үүнээс хазайх нь үйлчлүүлэгчийн төлөө бодох явдал юм. Заримдаа энэ зам нь Оросын хуучин нийслэлээс либерал Европ руу чиглэсэн зам шиг мухардалд хүргэдэг. Өөрөөр хэлбэл, ажил хүлээж авах үе шатанд даалгавар нь огтхон ч биш, харин эрс эсрэгээрээ байсан нь харагдаж байна.

Хэрэв даалгавар бага бол гүйцэтгэгч буулт хийж, шинэ TOR-ийн дагуу ажлыг засч залруулах боломжтой. Хэрэв ажил их хэмжээгээр хийгдсэн бол ямар нэгэн зүйлийг өөрчлөхөд хэтэрхий оройтсон байна. Нийтлэг асуудал бол хөгжүүлэлтийн явцад бүрэн салалт, жишээлбэл бета туршилтанд оролцохоос татгалзах явдал юм: "Яагаад та надад алдаатай шинжээчийн зөвлөх илгээсэн юм бэ, би өөр юу шалгах ёстой вэ?" эсвэл: "Таны энэ тестерийг яаж ажиллуулахаа би яаж мэдэх вэ, би програмист юм уу?".

Тохиромжтой хүний ​​хувьд ийм мэдэгдэл нь чихийг нь огтолж байхад жүжигчин нь сэтгэлийн хямралд ордог. Худалдааны роботыг хөгжүүлэх нь юуны түрүүнд ажил юм. Хэрэв та бэлэн шийдлийг хайж байгаа бол бэлэн Мэргэшсэн зөвлөхийн дэлгүүр байдаг бөгөөд тэнд Мэргэшсэн зөвлөхийг туршиж, өнгөлж, түүний түүхэн амжилтыг баримтжуулах болно. Энэ тохиолдолд бие даасан биржтэй холбоо барих нь утгагүй юм.

Ёс суртахуун: Бүх юмыг тохиолдлоор бүү өг. Мөрөөдлийн мэргэжилтэн зөвлөхийг бий болгох үйл явцыг хянах нь таны сонирхолд нийцнэ. Чухал үеийг асууж, бета туршилтанд оролцож, техникийн дэлгэрэнгүй мэдээллийг авахаас бүү эргэлз.

Дүгнэлт

Альберт Хофманн шиг агуу хүмүүс таныг худлаа ярихыг зөвшөөрөхгүй. Өөрийнхөө бүтээгдэхүүнийг бүтээх туршлага бол үнэлж баршгүй юм. Хэрэв та өөрийн хүслээр валютын захад ирсэн бол надад итгээрэй, энэ бол удаан хугацааны туршид юм.

Загваруудыг судлах, шийдлийг хайх, хэрэгжүүлэх нь ертөнцийн талаарх ойлголтыг үүрд өөрчилж, түүний дүр төрхийг бүрэн дүүрэн болгож, амьдрал нэмэлт утга учиртай болдог.

Үнэн хэрэгтээ өөрийн шинжээчийн зөвлөхийг бий болгох нь маш сонирхолтой үйл явц юм. Хэдийгээр та карьераа санхүүгийн зах зээл дээр арилжаалахтай холбохгүй байсан ч олж авсан мэдлэгээ бусад салбарт ашиглах боломжтой. Худалдаа, хөгжил бол орчин үеийн эдийн засаг бүхэлдээ түшиглэдэг зүйл бөгөөд өнөөдөр та үүнийг биечлэн мэдрэх боломжтой.

Редакторын сонголт
Александр Лукашенко наймдугаар сарын 18-нд Засгийн газрын тэргүүнээр Сергей Румасыг томилов. Румас удирдагчийн засаглалын үед аль хэдийн найм дахь Ерөнхий сайд болсон ...

Америкийн эртний оршин суугчид болох Майя, Ацтек, Инкүүдээс эхлээд гайхалтай дурсгалт газрууд бидэнд иржээ. Испанийн үеэс хэдхэн ном байсан ч ...

Viber бол дэлхийн сүлжээгээр харилцах олон платформ програм юм. Хэрэглэгчид илгээх, хүлээн авах боломжтой...

Gran Turismo Sport бол энэ намрын гурав дахь бөгөөд хамгийн их хүлээгдэж буй уралдааны тоглоом юм. Одоогийн байдлаар энэ цуврал нь үнэндээ хамгийн алдартай нь ...
Надежда, Павел нар олон жилийн турш гэрлэж, 20 настайдаа гэрлэж, одоо ч хамт байгаа ч бусад хүмүүсийн нэгэн адил гэр бүлийн амьдралд үе үе байдаг ...
("Шуудангийн газар"). Сүүлийн үед хүн бүр утасгүй байсан тул хүмүүс шуудангийн үйлчилгээг ихэвчлэн ашигладаг байсан. Би юу хэлэх ёстой вэ...
Дээд шүүхийн дарга Валентин СУКАЛО-той хийсэн өнөөдрийн ярилцлагыг хэтрүүлэггүйгээр чухал ач холбогдолтой гэж хэлж болно.
Хэмжээ ба жин. Гаригуудын хэмжээ нь диаметр нь дэлхийгээс харагдах өнцгийг хэмжих замаар тодорхойлогддог. Энэ арга нь астероидуудад хамаарахгүй: тэд ...
Дэлхийн далайд олон төрлийн махчин амьтад байдаг. Зарим нь олзоо нуугдаж хүлээж, гэнэтийн дайралт хийх үед...