ROOT学习——显示带有蜡烛图的THStack(candleplotstack.C)

本文介绍了K线图的历史起源,从日本米市交易到现代金融市场的重要分析工具,讲解了K线图的基本构成如开盘价、收盘价、最高价及最低价,并探讨了其在股票、外汇市场技术分析中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 设置时间偏置:

gStyle->SetTimeOffset(0);

创建一个随机数:

TRandom *rng       = new TRandom();

创建两个时间数:

TDatime *dateBegin = new TDatime(2010,1,1,0,0,0);
TDatime *dateEnd   = new TDatime(2011,1,1,0,0,0);

创建三个二维直方图:

int bins = 1000;
TH2I *h1 = new TH2I("h1","Machine A",6,dateBegin->Convert(),dateEnd->Convert(),bins,0,1000);
TH2I *h2 = new TH2I("h2","Machine B",6,dateBegin->Convert(),dateEnd-Convert(),bins,0,1000);
TH2I *hsum = new TH2I("h4","Sum",6,dateBegin->Convert(),dateEnd->Convert(),bins,0,1000);

生成高斯随机数填充直方图:

float Rand;
for (int i = dateBegin->Convert(); i < dateEnd->Convert(); i+=86400*30) {
   for (int j = 0; j < 1000; j++) {
      Rand = rng->Gaus(500+sin(i/10000000.)*100,50); h1->Fill(i,Rand); hsum->Fill(i,Rand);
      Rand = rng->Gaus(500+sin(i/12000000.)*100,50); h2->Fill(i,Rand); hsum->Fill(i,Rand);
   }
}

设置h2绘制线的颜色:

h2->SetLineColor(kRed);

设置hsum的填充色:

hsum->SetFillColor(kGreen);

创建一块画布:

TCanvas *c1 = new TCanvas();

创建THStack类(直方图叠加类)hs:

THStack *hs = new THStack("hs","Machine A+B");

将三个直方图添加到hs中:

hs->Add(h1); //以hs绘制格式绘制
hs->Add(h2,"candle2"); //以candle2格式绘制
hs->Add(hsum, "violin1"); //以violine1格式绘制

绘制hs:

hs->Draw("candle3");

将hs的x轴分成410个区域:

hs->GetXaxis()->SetNdivisions(410);

设置网格:

gPad->SetGrid(1,0);

设置x轴显示类型:

hs->GetXaxis()->SetTimeDisplay(1);

设置x轴显示时间的格式:

hs->GetXaxis()->SetTimeFormat("%m/%y");

设置x轴标题:

hs->GetXaxis()->SetTitle("Date [month/year]");

对画板进行调整更新:

c1->Modified();

添加图例:

gPad->BuildLegend(0.75,0.75,0.95,0.95,"");

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值