文谦 发表于 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);
    }
}

页: 1 2 3 4 5 6 7 [8] 9
查看完整版本: 编写竹节图