Thư viện AFL
Thư viện AFL
Quá trình Bernoulli - Hàm Entropy nhị phân Mã AFL của Amibroker

Quá trình Bernoulli - Hàm Entropy nhị phân Mã AFL của Amibroker

Hàm entropy nhị phân

là một khái niệm toán học được sử dụng để đo lường tính không chắc chắn hoặc tính ngẫu nhiên của hệ nhị phân. Trong hệ thống nhị phân, chỉ có hai kết quả có thể xảy ra, chẳng hạn như mặt ngửa hoặc mặt sấp khi tung đồng xu. Hàm entropy nhị phân được sử dụng để đo xác suất xảy ra hai kết quả này.

Trong giao dịch, hàm entropy nhị phân có thể được sử dụng để phân tích khả năng xảy ra một sự kiện cụ thể. Ví dụ: nó có thể được sử dụng để phân tích xác suất một cổ phiếu đạt đến một mức giá nhất định hoặc xác suất một chỉ số kinh tế cụ thể có giá trị nhất định.

Hàm entropy nhị phân thường được sử dụng kết hợp với các công cụ phân tích kỹ thuật khác, chẳng hạn như phân tích thống kê và thuật toán học máy, để đưa ra quyết định giao dịch sáng suốt hơn. Nó có thể giúp các nhà giao dịch và nhà đầu tư xác định các mô hình và xu hướng trên thị trường, đồng thời đưa ra dự đoán chính xác hơn về hướng giá.

Đây là đoạn mã Quy trình Bernoulli được dịch từ

Giao dịch chỉ báo Pinescript

khám phá Hàm/Phân phối Bernoulli) và kết hợp với phép đo Entropy của Shannon

Trong trường hợp bạn cần một lớp sơn lót cho Phân phối Bernoulli. Bắt đầu ở đây

Hệ thống giao dịch đơn giản dựa trên hàm Entropy Bernoulli

Liên quan

Mã nguồn (.afl)
//////////////////////////////////////////////////////////
//Coded By Rajandran R - Founder - Marketcalls			//
//Creator - www.openalgo.in      						//
//Creation Date - 01st Sep 2020							//
//////////////////////////////////////////////////////////
_SECTION_BEGIN("Trading System Based on Bernoulli Entropy function");


src = ParamField("Source");
len = Param("Length",22,1,100,1);
range = Param("Range",0.67,0.01,1,0.01);
average = Param("Average",88,1,100,1);
vPR = Param("Percent Rank Limit",5,1,10,1);




cr = src/sum(src,len);                                                               //source, typ close, percent of close, measured over summation period
vr = log(volume)/sum(log(volume),len)   ;                                            //volume data, percent of volume, measured of summation period
vr2 = min(max(percentrank(vr,average)/100,0.001),0.999) ;                                //cutting out 100% and 0% readings, changing to +/-3sigma
cr2 = min(max(percentrank(cr,average)/100,0.001),0.999) ;
infoc = sum((cr2*log10(cr2)/log10(2)) - (1-cr2)*log10(1-cr2)/log10(2),len);    //p(close)*log2(p(close)) - (1-p(close))*log2(1-p(close))
infov = sum((vr2*log10(vr2)/log10(2)) - (1-vr2)*log10(1-vr2)/log10(2),len);
info2 = infoc - infov    ;


color = IIf(info2>range, colorGreen, IIf(info2<-range,colorRed,colorGrey40));
//Plot(info2,"Info",color,styleHistogram | styleThick);
//Plot(infoc,"Price",colorBlue);
//Plot(-infov,"Volume",colorOrange);


hvp = percentrank(info2,average);

Buy = info2>range;

sell = info2<-range;


Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);

/* Plot Buy and Sell Signal Arrows */
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", color, styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 


_SECTION_END();

Hướng dẫn: Copy đoạn mã trên, mở AmiBroker Formula Editor, dán vào và lưu lại với tên tương ứng.