Đăng ký Đăng nhập
Trang chủ Hướng dẫn code đơn giản amibroker p1...

Tài liệu Hướng dẫn code đơn giản amibroker p1

.DOCX
31
252
113

Mô tả:

Hướng dẫn code đơn giản Amibroker (P1) Chào mọi người, em xin chia sẻ chút ít mà em có t ự mày mò đ ược vềề vấấn đềề trền. Vì em tm hi ểu, cóp nhặt công thức linh ta linh tnh nền bài viềất sơ sài và thiềấu chính thôấng. Em seẽ côấ gắấng đ ơn gi ản và dềẽ hiểu nhấất. Đêm hôm rảnh rôỗi các bác đọc dòng nào nhảm thì lướt qua phầần đầầu, xem 3 cái hình v ới chú thích thôi, nhé! Trước tền em xin phép lan man t: Vì sao em lại biềất đềấn cái trò côất kiềấc này? Lúc m ới s ử d ụng Ami, em bị dị ứng màu trắấng. Mà các bác cũng biềất mấấy phiền b ản Ami tr ước đấy thì phông toàn màu trắấng, nền em phải đổi sang phông đen. Các in đi cấềy tơ thì màu sắấc nó l ại phù h ợp v ới màu trắấng, môẽi lấền kéo ra kéo vô lại phải chỉnh. Em bực mình google mấấy hôềi thì ra cái này, chính là cái ch ỉnh s ửa n ội dung indicator. Hay quá đỡ phải chỉnh màu môẽi lấền kéo ra kéo vô. À, nềấu muôấn chỉnh sửa một con cấềy tơ có sắẽn, lích ph ải vào nó rôềi edit ỒỒ nó hiện ra cái bảng này. Em éo thích màu xích lô, em s ửa thành vàng, đ ể style đ ậm đà (styleThick) cho phong cách, nhìn cho rõ. Xong save lại là lấền sau có màu vàng phong cách rôềi. Còn nềấu bác nào muôấn nuôi một em cấềy tơ m ới để th ử ph ương pháp trading, thì thềấ này. Các bác tm cái búa Người phán xử nhé. Nó cũng lòi ra cái c ửa sôấ giôấng hình trền nh ưng mà còn trinh nguyền. Em lan man thềấ hềất xừ một trang Microsof doc rôềi. Thôi gi ờ đi vào mấấy khái ni ệm. Ngôn ngữ Amibroker, Amibroker Formula Language hay AFL. Bác nào r ảnh c ứ Google code af amibroker ra đấềy một lũ. Nhưng không có chén thánh đấu nhé. Nhìn thì hay nh ưng biềất nó ho ạt đ ộng thềấ nào vấẽn hơn. À còn một hình nữa là xong thủ tục giới thiệu c ửa s ổ code nhé các anh em yều quý Các mảng cơ bản Trước tền là giá và khôấi lượng. Bọn lập trình nó g ọi là M ảng hay Array. Thôi mình dấn ch ứng cháo c ứ giá và vol là ok. O là Open – giá mở cửa trong ngày H là High – giá cao nhấất trong ngày L là Low – giá thấấp nhấất trong ngày C là Close – giá đóng cửa V là Volumne – khôấi lượng giao dịch ngày Giá cao nhấất trong 10 ngày: HHV(H,10); (Cao nhấất trong 10 m ức giá cao) Giá thấấp nhấất trong 10 ngày: LLV(L,10); (Thấấp nhấất trong 10 m ức giá thấấp) Giá đóng cửa thấấp nhấất trong 10 ngày: LLV(C,10); Tham chiếu và Tham số Cái này tôi thấấy hay dùng (không xưng em v ới các bác n ữa). Hàm tham chiếếu (Reference): công thức Ref( ARRAY, period ); Ví dụ Giá đóng cửa ngày hôm qua gán cho biềấn C1. Tền biềấn đ ặt thềấ nào cũng đ ược. Ví d ụ: À các bác mở trền Menu Analysis -> Formula Editor hình cái búa nh ư tôi đã nói ở trền nhé. Có nghĩa là nềấu em “nói” (viềất công th ức) là C>EmLan; nghĩa là giá hôm nay l ớn h ơn em Lan (Giá đóng hôm qua). Còn nềấu giá hôm trước thì là -2, hôm tr ước n ữa là -3, hôm kía hôm kìa thì tềấp t ục.. Anh em để ý là nếếu viếết đúng, Ami seẽ tự nhận ra ngôn ng ữ c ủa nó và làm cho ch ữ đ ổi màu, chuy ển đ ậm, để phân biệt với những tến hay thông sôế mà ng ười dùng t ự đ ặt. Chú ý: Dầấu chầấm phẩy. Dầấu chẩm phẩy là quan trọng. Cứ hỏi bọn lập trình Dầấu chầấm phẩy CUỐỐI DÒNG là rõ nó phiêần thêấ nào nêấu chót quên. Hàm tham sôế (Parameters): Công thức Anh em xem trang dưới nhé, trang này ch ật rôềi. Param( ''name'', defaultval, min, max, step); Lấền lượt: Tến, giá trị mặc định, giá trị nhỏ nhâết, giá tr ị lớn nhâết, b ước nh ảy (ví d ụ đ ặt 1 thì là t ừ 1 lến 2, đặt là 2 thì từ 1 lến 3, đ ặt là 10000000 thì là t ừ 1 lến gi ời. Thôi các b ạn c ứ đ ặt là 1. Còn đ ặt cao là để đỡ mâết thời gian nếếu muôến Optmized – tôếi ưu hóa code, mình seẽ trình bày sau!) Ví dụ: Thoigian = Param("Loi cu ta ve",-15,-100,100,1); Các bác viềất tềấp như hình, đặt tền rôềi Save l ại. Ở phấền Custom, chu ột ph ải vào cái mình v ừa t ạo rôềi Insert hoặc cứ kéo trực tềấp vào. Như vậy là đặt mặc định là Thoigian 15 phiền tr ước hôm nay. Em Lan (giá đóng c ửa) tr ở thành người cũ thứ 15 (ấm 15 là 15 phiền kềấ trước). Em Lan còn có th ể là ng ười tnh 100 phiền tr ước đó (giá tr ị nhỏ nhấất) hoặc là 100 phiền sau. Chắấc các huynh đ ệ cũng quen v ới cái b ảng ch ỉnh thông sôấ môẽi khi kéo đường MA hay Volume vào đôề thị rôềi. Thoigian là biềấn, EmLan cũng là biềấn, được s ử d ụng trong quá trình code. Loi cu ta ve là tền hiển thị, như trong hình đó. V ậy có th ể ch ỉnh s ửa Lôấi cũ ta vềề thành ấm m ười lắm (-15) hay 10 hay 100 trong khi sử dụng. Mặc định là -15. Hiển thị Chart Công thức: Plot( array, name, color, style, minvalue, maxvalue, XShif); Giải thích Array: Mảng cấền hiển thị. Chút nữa các bác seẽ hiểu Name: Tền mình đặt. Seẽ hiển thị trền phấền t tôề (ttle) ở góc trái trền c ủa chart. L ưu ý tền ph ải trong ngoặc kép. Color: cách viềất: ColorYellow colorred Colorgreen - thích màu gì cho màu đó đắềng sau ch ữ color. Nềấu viềất đúng thì chữ tự chuyển đậm. Style: cách viềất: styleLine (đường nét liềền mảnh), styleThick (đ ường nét liềền đ ậm), styledashed (đ ường đứt đoạn) Min và max value: Bỏ qua nhé! Viềất thành sôấ 0 Dấấu chấấm phẩy cuôấi cấu nhé! Ví dụ đấy, ví dụ đấy! Plot(C,"Chikou Span",colorLime,styleLine,0,0,-26); Tôi viềất đường Chikou Span theo tnh thấền Ichimoku nhé. Đó là đ ường giá nh ưng lùi l ại 26 phiền so với thời điểm hiện tại. Như vậy: Plot(Giá, “đặt tền Chikou Span”, màu xanh chanh, ki ểu đ ường m ảnh, ấm 26 nghĩa là lùi 26 phiền); Các cụ viềất như trền rôềi Save lấền nữa. Kéo vào đôề th ị giá. Kềất qu ả nh ư hình: Ví dụ 2: Cổ phiềấu vượt đỉnh phá đáy. Các anh em còn nhớ công thức HHV và LLV (Higher high value và Lower low value) mà tôi đ ể ở phấền đấều? Tôi seẽ tạo một đường đỉnh và đáy trong 60 ngày (kho ảng 3 tháng) nhé. EmQuynh=HHV(H,60); EmChi=LLV(L,60); Plot(EmQuynh,"Dinh cao voi voi",colorWhite,styleDashed); Plot(EmChi,"Vuc sau muon trung",colorWhite,styleDashed); Giải thích: Em Quỳnh là Đỉnh cao vời vợi (60 ngày) còn Em Chi là v ực sấu muôn trùng (đáy thấấp nhấất của các mức giá thấấp nhấất – 60 ngày). Plot (hiển thị) 2 em ý lền đôề thị (tền biềấn, tền tều đềề, màu trắấng trinh nguyền, ki ểu nét đ ứt); Các bạn lại save vào và kéo vào đôề thị giá như các b ước trền ví d ụ tr ước nhé. À 2 dấấu g ạch // ở plot Chikou Span để biềấn dòng đấấy thành Comment, không hi ển th ị n ữa. Tôi seẽ nói vềề vấấn đềề Comment ở bài sau. Chúng ta đã có một cái khung hay đ ường band trền d ưới hi ển th ị 2 m ức giá cao thấấp trong 60 ngày. Nhưng để hiển thị rõ rang hơn, tôi seẽ s ửa l ại 2 dòng code: EmQuynh=HHV(Ref(H,-1),60); EmChi=LLV(Ref(L,-1),60); Như vậy, Em Quỳnh trở thành vực cao của 60 ngày liềền tr ước TÍNH T Ừ ngày hôm qua, có th ể hôm nay tôi đã chinh phục được em rôềi. Chúng ta chú ý vi ệc đ ể hàm Ref(H,-1) là giá cao nhấất ngày hôm qua lôềng trong hàm HHV thay cho chỉ một biềấn H (giá cao). C ẩn th ận mấấy dấấu ngo ặc ph ải đấềy đ ủ v ới nhau. Lưu lại rôềi cùng so sánh 2 đôề thị sau khi s ửa code. Lưu ý rắềng ở hình trền (sau khi sửa) chúng ta nhìn thấấy rõ Vnindex đã phá xuôấng d ưới m ức Em Chi, còn bền dưới (Chưa sửa) thì Em Chi chính là vực sấu c ủa giá ngày hôm đó nền khó phát hi ện h ơn. Đường MA Chúng ta hãy kềất thúc bắềng một đ ường quen thu ộc là đ ường trung bình. Tấất nhiền nó có sắẽn trong Ami rôềi. nhưng trong quá trình tự phát triển các ý t ưởng c ủa b ản thấn, chúng ta vấẽn nền s ử d ụng hàm này. MA( ARRAY, periods); Ví dụ: Tôi seẽ lấấy đường trung bình động c ủa Khôấi lượng trong 20 ngày tr ừ Khôấi l ượng trung bình đ ộng 50 ngày. Nhung_ngay_ben_em_Nhi = Param("T1",20,1,200,1); Nhung_ngay_ben_em_Ha = Param("T2",50,1,200,1); EmNhi=MA(V,Nhung_ngay_ben_em_Nhi); EmHa=MA(V,Nhung_ngay_ben_em_Ha); Chenhlech=(EmNhi-EmHa)/EmHa; Plot(Chenhlech,"Dong ten",colorWhite,styleHistogram|styleOwnScale); Plot(EmNhi,"MA Volume 20",colorGreen,styleLine); Plot(EmHa,"MA Volume 50",colorRed,styleLine); Như vậy, tôi vừa tạo ra một công cụ theo phong cách MACD c ủa khôấi l ượng, giúp thấấy rõ h ơn s ự chuy ển động của khôấi lượng giao dịch trung bình. Chúng ta có th ể thay đ ổi 2 thông sôấ 20 và 50 ngày khi s ử d ụng. Diềẽn giải phấền code: 2 dòng đấều đặt thông sôấ th ời gian trung bình. Tiềấp theo là công th ức MA c ủa khôấi lượng. Chú ý rắềng có thể thay MA (đường trung bình đ ộng th ường) thành EMA đ ường trung bình đ ộng lũy thừa. Chenhlech chính là mức tang giảm của khôấi l ượng trung bình. Phấền d ưới Plot hi ển th ị hình ảnh chart. Chú ý đoạn styleHistogram|styleOwnScale dấấu | v ới ch ức nắng kềất h ợp ki ểu style. StyleOwnScale: vì chềnh lệch tnh với công thức như trền ch ỉ loanh quanh sôấ 0, nh ưng khôấi l ượng trung bình l ại là vài ngàn đềấn vài triệu nền để cùng với nhau trền m ột bi ểu đôề, ta ph ải yều cấều Chenhlech m ột Quy mô riềng (StyleOwnScale). Bạn có thể xóa đoạn styleHistogram|styleOwnScale và thay bắềng ch ỉ có styleHistogram để hiểu thềm. Hướng dẫn Code Amibroker cơ bản - P2 Chia đoạn và commnet Nói một chút vềề vấền đềề này! Ở phấền trước, tôi có nhắấc đềấn việc comment. Nh ững dòng comment trong đo ạn mã c ủa chúng ta th ực ra rấất quan trọng trong quá trình làm việc. Chúng ta muôấn t ạo ra m ột cái gì đó hi ệu qu ả và dềẽ hi ểu. Vấấn đềề là chúng ta seẽ thường xuyền sửa đ ổi và đ ọc đi đọc l ại đo ạn mã gôềm nh ững ký hi ệu ph ức t ạp trong quá trình tôấi ưu hóa nó. Điềều đó phức tạp đôấi với bộ não của chúng ta. Đoạn code là đ ể máy tnh đ ọc, còn anh em ta thích đ ọc những cấu như “Hôm nay tắng ác đấấy” hay “múc con đấấy nhi ệt tnh vào” ho ặc là “Tấy lông bán ác quá”. Ví dụ đoạn mã ở trền, nềấu môẽi lấền cấền ph ải s ửa đổi, seẽ lại ph ải cắng mắất tm l ại t ừng dòng, không biềất rắềng cái thắềng mình – 5 phút trước – vừa viềất cái kh ỉ ho gì. Nềấu ch ị em l ại đ ưa nó cho anh chàng hàng xóm nhờ xem hộ vấấn đềề tại sao “nó” tắng ấềm ấềm mà con robot c ủa em l ại báo mua đúng đ ỉnh, anh chàng cũng seẽ bôấi rôấi với mớ bòng bong c ủa b ạn. Nềấu các b ạn còn nh ớ đo ạn code xác đ ịnh đáy và đ ỉnh hôm qua: Chúng ta thềm comment nội dung sau dấấu // xem chúng ta đang làm gì ở đoạn đó. Anh em cũng để ý thấấy phấền đấều và cuôấi môẽi đoạn v ới cú pháp: _secton_begin(“ghi tền secton”); Nội dung _secton_end(); Ok nó giúp phấn đoạn dềẽ dàng hơn. Nhưng nềấu thắấc mắấc rắềng vi ệc phấn đo ạn thì comment nh ư trền là được rôềi, phải gõ thềm 2 dòng kia làm gì mấất công. Chúng ta hãy làm m ột th ử nghi ệm nh ỏ. Ch ỉnh s ửa đoạn code trền một chút, như thềấ này: Thềm cú pháp phấn đoạn vào để phấn đoạn hi ển th ị em Quỳnh và em Chi. Save l ại và kéo sang bi ểu đôề giá. Nhấấp chuột phải, chọn Delete Indicator và đá em Quỳnh ra kh ỏi cu ộc đ ời mình. Bắềng cách phấn tách các Secton, chúng mình đã tạo ra các Indicator riềng reẽ đ ể có th ể làm vi ệc tôất h ơn v ới chart. Cuôấi cùng, hãy so sánh trền và dưới. Đoạn vắn rõ ràng và m ạch l ạc h ơn so v ới đ ể trấền m ột c ục nh ư đo ạn dưới. Tập mổ xẻ, phanh thây và học hỏi các tiền bối Nềền y học của thềấ giới seẽ không phát triển nh ư hiện t ại nềấu không có nh ững thí nghi ệm vô nhấn tnh trền chính con người của những nhà khoa h ọc điền th ời c ổ. H ọ sắẽn sàng m ổ phanh m ột ng ười sôấng ch ỉ để xem có gì bền trong cơ thể người. Có những ng ười b ị kềất cho t ội phù th ủy và b ị thiều sôấng sau đó. May mắấn thay, chúng ta cũng có thể học tập theo cách đó. Tr ừ phấền vô nhấn tnh. Vọc code của các tềền bôấi là một cách tch lũy kinh nghi ệm th ật h ữu hi ệu. Quý vị google rôềi bấấm vào link như trền. htp://www.wisestocktrader.com/indicators/1100-ichimokuwith-buy-sell Vào trang web, kéo xuôấng phấền FORMULA, ấấn Copy and Paste Friendly. Nó đ ưa mình sang trang m ới. ẤẤn Ctrl + A chọn toàn bộ. Ctrl+C để copy. Chuy ển sang Amibroker, m ở c ửa s ổ code m ới (tm hình cái búa hoặc vào Menu Analysis => Formula Editor). Ctrl+P để dán toàn b ộ đo ạn v ừa Copy vào. Đ ặt tền rôềi Save lại. Nào cùng nhau phấn tch đoạn code Ichimoku n ổi tềấng. Trước khi tềấp tục, xin nói thềm một thủ tục là kiểm tra. Sau môẽi đo ạn code hoàn thành, chúng ta seẽ click vào nút này để kiểm tra sản phẩm của mình. Ch ương trình seẽ báo lôẽi nềấu phát hi ện sai lôẽi cú pháp và ch ỉ vị trí để dềẽ dàng sửa lại. Tiềấp tục với Ichimoku nhé. Đấều tền xin cảm ơn tác giả! Đấều tền, lại đấều tền chúng ta hãy lướt qua m ột đo ạn t ừ trền xuôấng d ưới. Chúng mình có th ể nh ận ra tác giả trình bày từng đoạn một rấất gọn gàng ngắn nắấp. Có comment ở t ừng phấền n ội dung (Tuy rắềng hình như có lôẽi phông chữ). Đọc từng đoạn code ICHIMOKU Phấền đấều: Thiềất lập các thông sôấ cơ bản. Trền đấy là quy tắấc cấấu tạo các bộ phấn trong Ichimoku. Các ch ị em anh em ch ịu khó tm hi ểu thềm quy tắấc Ichimoku nhé! Còn đấy là phấền code Đoạn thứ nhấất, n1 n2 n3 quy định 3 môấc thời gian là 9, 26, 52. Đoạn thứ 2 là viềất công thức theo quy tắấc ở trền. Ví dụ đường Tenkan = trung bình của giá cao nhấất và giá thấấp nhấất trong 9 phiền có công th ức: Đường Senkou Span A Các bạn tự đọc những dòng còn lại. Đoạn SpA, SpB và DL tôi không hi ểu ý c ủa tác gi ả và có xuấất hi ện ở bền dưới. Sau bài viềất mọi người có thể suy nghĩ thềm! Đoạn điều kiện Từ phấền Cond1 Cond2 đềấn hềất vòng lặp for{} (kềất thúc ngay tr ước Alert). Các điềều ki ện ở phấền này làm tềền đềề cho những điềều kiện và hành đ ộng ở sau. Tôi seẽ thử đọc vài dòng. Cond2 = Ref(Close < Min(SenkouSpanA,SenkouSpanB),-1); Ref(...,-1) nghĩa là điềều kiện dựa trền d ữ liệu phiền liềền tr ước. So sánh giá đóng cửa của phiền đó phải nhỏ hơn giá trị nh ỏ nhấất (Min) gi ữa SenkouSpanA và SenkouSpanB của phiền đó. Cond3 = Ref(Cross(TenkanSen,KijunSen),-1); Ở đấy, xuấất hiện công thức Cross. Cross (cắất qua) có công thức là Cross( ARRAY1, ARRAY2 ): Array 1 cắắt lên trên Array2 Ví dụ: Cross(C,MA(C,20)) có nghĩa là Giá đóng c ửa CẮẤT LÊN TRÊN đ ường MA20 Nềấu giá đóng CẮẤT XUỒẤNG DƯỚI thì seẽ đặt C ở sau MA(C,20): Cross(MA(C,20),C) Như vậy, điềều kiện Cond3 là ở phiền liềền trước, đ ường Tenkan đã cắất lền trền đ ường Kijun Nhấn tện đấy cũng nói thềm: Trong quá trình mổ x ẻ các code đã có sắẽn c ủa các tềền bôấi chúng ta seẽ g ặp nhiềều công thức hay cấấu trúc rấất lạ. Và cấu tr ả lời cho hấều hềất tnh huôấng th ường là: CỒNG NGHỆ TÌM KIÊẤM THẬT TUYỆT VỜI!!!  Tiềấp nào Cond7 = Ref(Cross (Close , Max(SenkouSpanA,SenkouSpanB)),-1); Ở công thức này anh em có thể đọc dềẽ dàng sau khi đã biềất cách đ ọc 2 công th ức bền trền. Tại phiền liềền trước, giá đóng cửa đã cắất lền trền giá tr ị cao nhấất c ủa SenkouSpanA và B. Ví d ụ: đường SenkouSpanA đang ở trền SenkouSpanB ở phiền đó, và giá đó c ửa seẽ cắất lền trền đ ường SenkouSpanA – suy ra là nềấu thỏa mãn điềều ki ện này, giá seẽ thoát kh ỏi đám mấy Kumo theo chiềều tắng! Cond9 và Cond10: 3 điềều kiện kềất hợp với nhau bởi (b ọn l ập trình nó g ọi là toán t ử logic) AND. Nghĩa là điềều kiện để bôấ mua gấấu cho là con ph ải đ ược đi ểm trền 0 c ả môn toán AND tềấng vi ệt AND tềấng anh nhé. RemCond9=ExRem(Cond9,NOT Cond9); RemCond10=ExRem(Cond10,NOT Cond10); Điềều kiện RemCond9 và RemCond10: Lấền đấều tền x ảy ra điềều ki ện Cond9 đúng và lấền đấều tền điềều kiện Cond10 đúng. Phấền này ph ức tạp h ơn chút ít, ở bài khác tôi seẽ nói thềm vềề Exrem. Từ phấền ColSenk đềấn hềất vòng lặp for (ngay trền dòng Alert) là các điềều ki ện quy đ ịnh màu sắấc. Ở đấy, có công thức IIF là để đặt giá trị theo điềều ki ện. Cấấu trúc điềều ki ện If và Cấấu trúc vòng l ặp for, các bác seẽ thấấy giải thích ở các bài sau. Tôi chỉ nói vềề IIF. IIF dùng để đặt giá trị thỏa mãn một điềều kiện nhấất đ ịnh Ví dụ: Trump = iif(C>O,1,0); nghĩa là ông Trump có giá trị = 1 nềấu giá đóng>giá m ở, nềấu < ho ặc = thì Trump seẽ = 0 Obama = iif(Cond1,colorblack,colorred); nghĩa là ông Obama seẽ là da đen nềấu th ỏa mãn điềều kiện Cond1, không thỏa mãn thì da đ ỏ. Ví dụ hiển thị đường MA trền màn hình: Plot(MA(C,20),”MA20”,Obama,styleline); Như vậy, sau khi thay biềấn màu sắấc Obama đã đ ặt ở trền vào v ị trí c ủa color (màu) trong cấu lệnh Plot thì đường MA seẽ màu đen khi th ỏa mãn điềều ki ện Cond1, và màu vàng khi không th ỏa mãn Cond1. Có thể ghi trực tềấp cấu lệnh iif lôềng trong Plot nh ư sau: Plot(MA(C,20),”MA20”, iif(Cond1,colorblack,colorred),styleline); Trong một cấu lệnh có nhiềều đoạn phải mở đóng ngo ặc, chúng ta nền c ẩn th ận. ColSenk =IIf (Cond1,colorGreen, IIf(Cond2,colorRed,colorLightGrey)); Như trong cấu lệnh trền, ColSenk chỉ là tền mà tác giả đ ặt, chắấc có ý đôề s ử d ụng ở phía d ưới. Chúng ta dềẽ thấấy cấu lệnh IIf quy đ ịnh màu sắấc (t ương t ự Obama) và có 2 cấu l ệnh lôềng vào nhau. Các huynh hãy thử diềẽn giải ý nghĩa tr ước khi đ ọc tềấp nhé. Nềấu thỏa mãn điềều kiện Cond1 thì ColSenk là màu xanh l ục, nềấu không th ỏa mãn Cond1 mà th ỏa mãn Cond2 thì đỏ, còn không thỏa mãn đk nào thì màu xám trắấng. Flat = TenkanSen == Ref(TenkanSen,-1) OR (NOT(Cond1) AND NOT(Cond2)) ; Điềều kiện Flat: thỏa mãn khi Tenkan bắềng với Tenkan ngày hôm tr ước Ref(TenkanSen,-1) hoặc là (OR) không thỏa mãn cả điềều kiện Cond1 và Cond2 (NOT(Cond1) AND NOT(Cond2)) CHÚ Ý: 1 dấắu = là gán giá trị, còn 2 dấắu == liêền nhau là bắềng nhau theo nghĩa đen Nềấu viềất là Flat == TenkanSen == Ref(TenkanSen,-1) thì ý ta là 3 giá trị trền bắềng với nhau. Còn Flat = TenkanSen == Ref(TenkanSen,-1) thì Flat trở thành một điềều kiện mới. Cấu lệnh Alertf để có chuông thông báo nềấu m ột điềều ki ện x ảy ra. Cái này ch ủ yềấu dùng cho Intraday trading (giao dịch trong ngày) nều tôi không đi vào phấền này do ở th ị tr ường ch ứng khoán Việt Nam do T+3 nền giao dịch trong ngày có nhiềều h ạn chềấ. Phần hiển thị Anh em ta chịu khó kéo xuôấng, trang d ưới. Trang này ch ật ch ội quá. H ừm Anh chị em bỏ hềất dấấu // của đoạn này đi nhé đ ể biềấn nh ững dòng comment màu xanh thành những dòng lệnh. Sau đó Save lại rôềi kéo th ử ra màn hình đ ể xem s ự thay đ ổi v ới đo ạn mã gôấc. Tôi đọc dòng đấều tền (sau khi bỏ // ): Hiển th ị hình mũi tền ch ỉ lền trền, d ạng tam giác nềấu th ỏa mãn điềều kiện Cond7. Màu xanh lục. Trời ơi tôi lười quá. Qua những gì chúng ta v ừa trải qua thì hy v ọng các anh em, à à ch ị em n ữa tự tm hiểu chức nắng này nhé. Bác Google luôn biềất tuôất: PlotShapes af Amibroker. htps://www.amibroker.com/guide/af/plotshapes.html Phấền Plot bền dưới (bài trước chúng ta đã làm quen v ới l ệnh Plot rôềi) hi ển th ị các đ ường chính trong Ichimoku mà tác giả thiềất lập ở phấền đấều. PlotOHLC là hiển thị 4 giá trị Open, High, Low, Close. Tôi có m ột th ủ thu ật nho nh ỏ là nềấu muôấn biềất m ột dòng lệnh dạng Plot có ý nghĩa gì, ta c ứ vi ệc thềm // ở đấều đ ể biềấn nó thành comment (comment thì ch ỉ có tác dụng giải thích, không ảnh hưởng đềấn lệnh) nhắềm m ục đích xem cái gì seẽ biềấn mấất trền màn hình. Các điều kiện và lệnh BUY và SELL ỒỒ xem ra đấy đã là gấền hềất rôềi 3 dòng đấều là lệnh gán điềều kiện, cũng giôấng nh ư Cond1 Cond2 Cond3 ở trền thôi nh ỉ! 6 dòng cuôấi cũng là lệnh gán điềều kiện, t ừ StrongBuy (Mua m ạnh) đềấn WeakSell (bán yềấu) Mọi người chú ý đềấn lệnh Buy và Sell Đấy cũng là cấu lệnh điềều kiện trong Amibroker, nh ưng là m ột điềều ki ện th ực thi. Nó khác v ới các lo ại gán điềều kiện khác (kiểu Cond1 Cond2) ở chôẽ: Cond1 ch ỉ là m ột th ứ (tôi bí t ừ) mà chúng ta đ ặt ra, sau đó dùng cái “thứ” điềều kiện ấấy để làm vật liệu cho các cấu l ệnh th ực thi. Còn Buy và Sell nó ở một đẳng cấấp khác. Đ ường đ ường là cấu l ệnh gôấc trong Amibroker, nền khi viềất Buy hoặc Sell, Ami seẽ nhận ra và in đậm ngay. Buy (mua) khi Tenkan cắất lền trền Kijun và DL l ớn h ơn giá đóng c ửa. Các b ạn xem l ại giá tr ị DL ở phấền thiềất lập trền đấều nhé. Sell các bạn cũng tự đọc nhé. Phần cuối Phấền cuôấi cùng lại là PlotShapes (hy v ọng m ọi ng ười đã Gu Gôề và hi ểu ý nghĩa cấu l ệnh này). Các cấu lệnh PlotShapes ở phấền dưới lôềng trong lệnh IIF đ ể hi ển th ị mũi tền báo mua bán, mua yềấu mua m ạnh, bán yềấu bán mạnh. Áp dụng thử thủ thuật thềm dấấu // comment đ ể xem tác d ụng c ủa các cấu l ệnh “d ạng Plot” nh ư Plot, PlotShapes hay PlotOHLC nhé. 2 cấu lệnh cuôấi cùng chính là để hiển th ị dải Ruy-bắng ở bền d ưới. À gi ờ thì đã hi ểu cấu l ệnh IIF màu sắấc ColSenk ở phía trền rôềi! Cảm ơn mọi người! Hướng dẫn code đơn giản Amibroker - P3 *CẨN THẬN: phần đầu nhảm nhí. Anh em kéo xuống trang 2 luôn cũng được, hoặc chịu khó đọc nhé. Xin chào các bạn! Mình vào chủ đề luôn. À thôi, nói phét tý đã, hề hề! Mình cứ đi cóp nhặt linh ta linh tinh, nên mỗi phần lại một đoạn. Mông không ra mông, ngực không ra ngực. Nghĩ gì nói đấy, lại kém về phần tổng hợp nên cách thức nhặt mỗi chỗ một tý cứ như nồi lẩu tả pí lù thập cẩm. Nấu lẩu hải sản, thêm tý thịt gà bò, con cá nát bét xong rồi lại mắm tôm vào gia vị Thái thì hết muốn ăn. Vậy nên hôm nay cũng chia phần ra chút. Nếu nói về việc code Amibroker ra một sản phẩm như thế nào, thì theo ý mình – theo ý mình thôi nhé – có 3 mục đích, hay cách dùng (hay dùng từ thế nào tùy bạn). (1) là tạo ra những công cụ hiển thị diễn giải – (2) là áp dụng hệ thống giao dịch – (3) là lọc lựa cổ phiếu. Nghe tên hơi trừu tượng khó hiểu, cho rằng người viết có vẻ tinh tướng ta đây thích dùng chơi chữ - mình cố tình đấy hề hề. Thật ra không có gì lạ cả, tôi giải thích ngay đây. 1. Các công cụ diễn giải biểu đồ Đây là những “thứ” quen thuộc nhất đối với người dùng Amibroker. Thôi nói thẳng luôn, là mấy indicator như đường MA, chỉ báo giao động RSI, MACD, Bollinger Band, đường ADX, Stochastic, ... được xây dựng theo một công thức nào đó do ông Robert Williams John Kevin Rayer gì đấy nghĩ ra. Nói chung hầu hết những thứ các bạn sử dụng, nhìn thấy trên biểu đồ. Mấy anh bạn phân tích thì vì RSI đã đi từ vùng quá mua sang vùng trung tính, kết hợp với giá chạm bật MA50 và MACD, Stochastic đều cho tín hiệu mua, v.v... rồi cho vào báo cáo môi giới đều sử dụng indicator cũng là dạng này. Hãy nhìn tranh bên dưới! Từ trên xuống dưới: RSI, đồ thị giá, ADX và MACD. Code của RSI, ADX và MACD. (Các bạn click chuột phải vào tên indicator rồi chọn edit để hiện cửa sổ code như trên). Các anh em hãy chú ý đến một câu lệnh rất quen thuộc đối với chúng ta trong 2 bài trước. Đúng vậy, đó là lệnh PLOT. Để hiển thị lên trên biểu đồ, ta dùng lệnh đó. Các Indicator chủ yếu để diễn giải chuyển động của giá hay khối lượng, vì nếu ai không quen nhìn biểu đồ trần (nghĩa là chỉ có giá & khối lượng, không mặc thêm gì hết) thì indicator dùng để giải thích, kiểu như: MA20 nằm trên MA50 thì xu thế tăng ngắn hạn, hay ADX> 50 thì xu hướng (mua hoặc bán) đang mạnh, ... Đầu tiên, chúng ta phải nghĩ ra ta muốn xem cái gì trên con người cô ấy, nghĩa là muốn hiểu cái gì về biểu đồ giá. Như ở bài 1, chúng ta đã cùng nhau tạo ra sự hiển thị các mức giá cao/thấp nhất trong 3 tháng hay biểu đồ “làm mềm” khối lượng.  Bước 1: Tạo ra công thức dựa trên những dữ liệu gốc là giá (O,H,L,C) và khối lượng (V)  Bước 2: Hiển thị bằng lệnh PLOT Ở ví dụ trên, RSI(), ADX(), MACD() là những hàm tính toán có sẵn trong Amibroker, chúng ta chỉ việc thêm thông số vào trong dấu ngoặc () như RSI(14) – cho 14 ngày. Đối với RSI mình cho thêm 2 đường quá mua, quá bán (tôi đặt là 80-20) là nét gạch. Thêm vào đơn giản trong code (các bạn có thể sửa 80-20 thành thông số khác tùy theo): Plot(80,"Overbought",colorYellow,styleDashed); Plot(20,"Oversold",colorYellow,styleDashed); Các indicator cơ bản mình hay sử dụng đều có sẵn trong Amibroker, chỉ việc thêm thông số. Các bạn chịu khó google như cách mình chỉ ở bài trước đối với một công thức chưa hiểu rõ nhé. 2. Hệ thống giao dịch Một hệ thống giao dịch gồm những điều kiện để vào lệnh và thoát lệnh. Theo một cách máy móc – vì chúng ta đang lập trình cho máy thực hiện, chỉ cần đạt đủ các điều kiện là ok, phát tín hiệu. Ở đây chém gió một chút, mặc dù máy móc rất kỷ luật nhưng lại chính là điểm yếu – đó chính là khó thích nghi với những thay đổi của thị trường. (ví dụ như tùy từng loại robo hay hệ thống giao dịch mà phù hợp với thị trường có xu hướng hay thị trường trong khung giao động). Con người dễ thích nghi nhưng cũng chính là điểm yếu – thiếu kỷ luật. Có lẽ nhiều người đã từng nhìn thấy những dạng biểu đồ như thế này: Những mũi tên xanh đỏ đại diện cho những quy tắc chứa những điều kiện cho việc mua/bán được kích hoạt trong code của chúng ta. Theo truyền thống của 2 bài trước, ta hãy viết một code đơn giản nhé. Các bạn đọc trên các website viết thế này
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất