可以的。
int arr[2]; static int arr_2[2]; arr[0] = arr[1] = 0; // 0:状态未知 1:多头排列 -1:空头排列 flag[0] = flag[1] = 0; arr[0] = ma排列(); arr[1] = macd排列(); if (arr[0] < 0 && arr[1] < 0) arr_2[0] = -1; else if (arr[0] > 0 && arr[1] > 0) arr_2[0] = 1; else arr_2[0] = 0; if (arr_2[0] < 0 && arr_2[1] < 0) // 空头排列,非第一次交叉 flag = 0; else if (arr_2[0] > 0 && arr_2[1] > 0) // 多头排列,非第一次交叉 flag = 0; else if (arr_2[0] < 0 && arr_2[1] >= 0) // 空头排列,第一次交叉 flag = -1; else if (arr_2[0] > 0 && arr_2[1] <= 0) // 多头排列,第一次交叉 flag = 1; arr_2[1] = arr_2[0]; return(flag);
满足下列两个条件:
1、满足5日、20日均线交叉
2、MACD与0轴交叉