ROOT学习——显示如何组合各种蜡烛图选项(candleplotoption.C)

    蜡烛图又称日本线、K线、阴阳线、棒线等,目前常用的说法百是“K线”以下统称K线。K线源于日本德川幕府时代(1603~1867年)的米市交易,用来计算米价每天的涨跌,后来把它引入股票市场价格走势的分析中,目前已成为股票、外汇技术分析中的重要方法。是技术分析的一种,最早为日本人于十九世纪所度创,被当时日本米市的商人用来记录米市的行知情与价格波动,包括开市价、收市价、最高价及最低价,阳烛代表当日升市,阴烛代表跌市。这种图表分析法在当时的中国以至整个东南亚地区均尤为流行。由于用这种方法绘制出来的图表形状颇似一根根蜡烛道,加上这些蜡烛有黑白之分,因而也叫阴阳线图表。通过K线图,人们能够把每日或某一周期的市况表现完全记录下来,股价经过一段时间的盘档后,在图上即形成一种特殊区域或形版态,不同的形态显示出不同意义。可以从这些形态的变化中摸索出一些有规律的东西出来。权K线图形态可分为反转形态、整理形态及缺口和趋向线等。后K线图因其细腻独到的标画方式而被引入到股市及期货市场。

下面给出具体代码步骤:

新建一个画布:

TCanvas *c1 = new TCanvas("c1","Candle Presets",800,600);

将画布横向分成3块,纵向分成2块:

c1->Divide(3,2);

创建一个随机数:

TRandom *rng = new TRandom();

创建二维直方图:

TH2I *h1 = new TH2I("h1","Sin",18,0,360,300,-1.5,1.5);

设置x轴标题:

h1->GetXaxis()->SetTitle("Deg");

使用高斯随机数填充二维直方图:

float myRand;
for (int i = 0; i < 360; i+=10) {
   for (int j = 0; j < 100; j++) {
      myRand = rng->Gaus(sin(i*3.14/180),0.2);
      h1->Fill(i,myRand);
   }
}

绘制6种不同类型的蜡烛图:

for (int i = 1; i < 7; i++) {
   c1->cd(i);
   char str[16];
   sprintf(str,"candlex%d",i);
   TH2I * myhist = (TH2I*)h1->DrawCopy(str);
   myhist->SetTitle(str);
}

创建第二张画布:

TCanvas *c2 = new TCanvas("c2","Candle Individual",800,600);

将画布横纵分别分成4块:

c2->Divide(4,4);

绘制15种不同类型的蜡烛图:

char myopt[16][8] = {"0","1","11","21","31","30","111","311","301","1111","2321","12111","112111","212111","312111"};
for (int i = 0; i < 15; i++) {
   c2->cd(i+1);
   char str[16];
   sprintf(str, "candlex(%s)",myopt[i]);
   TH2I * myhist = (TH2I*)h1->DrawCopy(str);
   myhist->SetTitle(str);
}

代码地址:https://github.com/root-project/root/blob/master/tutorials/hist/candleplotoption.C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值