文谦
发表于 2022-10-2 22:04:39
支持下
一灯
发表于 2022-10-4 18:42:00
支持下
东方闪狐
发表于 2022-10-7 22:17:20
{:1_179:}
别射
发表于 2022-10-14 17:51:57
谢谢
智能化
发表于 2022-10-15 23:12:26
{:1_181:}
叉先生
发表于 2022-10-17 17:09:31
{:1_186:}
开心
发表于 2022-10-23 18:36:03
谢谢
汇市蚂蚁
发表于 2024-12-14 14:50:59
支持下
寂寞的流星
发表于 2025-8-17 13:35:43
{:1_189:}
臭宝很深情
发表于 2025-8-17 13:44:38
// 获取指定周期的K线数据
iOpen(Symbol(), TimeFrame, Shift) // 开盘价
iHigh(Symbol(), TimeFrame, Shift) // 最高价
iLow(Symbol(), TimeFrame, Shift) // 最低价
iClose(Symbol(), TimeFrame, Shift)// 收盘价
// 输入:4小时图数据(假设1天=6根4小时K线)
int barsPerDay = 6;
int startShift = 0; // 从当前K线开始向前取
double newOpen= iOpen(NULL, PERIOD_H4, startShift + barsPerDay - 1);
double newHigh= 0;
double newLow = 1000000; // 初始极大值
double newClose = iClose(NULL, PERIOD_H4, startShift);
// 遍历一天内的6根4小时K线
for(int i = 0; i < barsPerDay; i++) {
int shift = startShift + i;
newHigh = MathMax(newHigh, iHigh(NULL, PERIOD_H4, shift));
newLow= MathMin(newLow,iLow(NULL, PERIOD_H4, shift));
}
// 输出结果
Print("日线竹节图: O=", newOpen, " H=", newHigh, " L=", newLow, " C=", newClose);
void AggregateBars(int targetPeriod, int sourcePeriod) {
int sourceBars = targetPeriod / sourcePeriod;
for(int day = 0; day < 10; day++) { // 处理最近10个周期
int startShift = day * sourceBars;
double aggOpen= iOpen(NULL, sourcePeriod, startShift + sourceBars - 1);
double aggHigh= 0;
double aggLow = 1000000;
double aggClose = iClose(NULL, sourcePeriod, startShift);
for(int i = 0; i < sourceBars; i++) {
int shift = startShift + i;
aggHigh = MathMax(aggHigh, iHigh(NULL, sourcePeriod, shift));
aggLow= MathMin(aggLow,iLow(NULL, sourcePeriod, shift));
}
Print(TimeToStr(iTime(NULL, sourcePeriod, startShift)),
" > O:", aggOpen, " H:", aggHigh, " L:", aggLow, " C:", aggClose);
}
}