历史条件满足也算吗?

VARIABLE: RSI_G: = 0,RSI_D: = 0 ,MACD_L: = 0 ,MACD_S: = 0; LC:= REF(CLOSE,1); RSI:=SMA(MAX(CLOSE-LC,0),7,1)/SMA(ABS(CLOSE-LC),7,1)*100; //RSI计算 IF BKVOL > 0 && RSI > 70 && RSI_G = 0 THEN BEGIN RSI_G:= 1; END IF BKVOL = 0 && RSI_G = 1 THEN BEGIN RSI_G:= 0; END有持仓时 实时盘中RSI > 70 没满足 RSI_G 会变成赋值成1呢? 历史满足也算吗? 如果要实时条件满足才赋值 赋值不在改变锁定 直到没有持仓初始化。要怎么写呢?

TB 和TB3 用if语句 就很容易实现的

请把完整代码发出来,并把对应情况截图贴一下

回复:// 主模型(任意周期加载) VARIABLE: RSI_G: = 0,RSI_D: = 0 ,MACD_L: = 0 ,MACD_S: = 0; YESTERDAY_CLOSE := REF(C, BARSLAST(DATE <> REF(DATE,1)) + 1); // 昨日收盘价,通过BARSLAST定位最后一根K线 YESTERDAY_SETTLE :="DAY$1$SETTLE"; // 主连合约结算价不可用,用昨收代替 NIGHT_OPEN_PRICE := VALUEWHEN(DAYBARPOS=1, O); // 夜盘开盘价,DAYBARPOS=1表示每日第一根K线 // 获取日线周期的开、收、结价 开盘价:=NIGHT_OPEN_PRICE; 结算价:=ROUND2(YESTERDAY_SETTLE,0); 收盘价:=YESTERDAY_CLOSE; // 计算最大值 MAX_PRICE := MAX1(开盘价, 结算价, 收盘价); // 三个价格中的最大值 // 计算最小值 MIN_PRICE := MIN1(开盘价, 结算价, 收盘价); // 三个价格中的最小值 // 计算中间值(既不是最大也不是最小的值) MID_PRICE := IFELSE(开盘价<>MAX_PRICE&&开盘价<>MIN_PRICE, 开盘价, IFELSE(结算价<>MAX_PRICE&&结算价<>MIN_PRICE, 结算价, 收盘价)); // 输出降序排列结果(最大值、中间值、最小值) 降序最大值:=MAX_PRICE; // 降序第1位:最大值 降序中间值:=MID_PRICE; // 降序第2位:中间值 降序最小值:=MIN_PRICE; // 降序第3位:最小值 GAO:=开盘价+ ABS(MAX_PRICE - MID_PRICE); 高点:GAO,NODRAW; DI:=开盘价- ABS(MAX_PRICE - MID_PRICE); 低点:DI,NODRAW; DRAWICON(VAR1.SC_15,CLOSE,'ICO87'); DRAWICON(VAR1.JC_15,CLOSE,'ICO153'); HH:=HHV(HIGH,1)/5+HHV(HIGH,2)/5+HHV(HIGH,2)/5+HHV(HIGH,5)/5+HHV(HIGH,8)/5; LL:=LLV(LOW,1)/5+LLV(LOW,2)/5+LLV(LOW,2)/5+LLV(LOW,5)/5+LLV(LOW,8)/5; H1:= IFELSE(H<REF(H,2) AND REF(H,1)<REF(H,2),REF(H,2),0); L1:= IFELSE(L>REF(L,2) AND REF(L,1)>REF(L,2),REF(L,2),0); H2:=VALUEWHEN(H1>0,H1); L2:=VALUEWHEN(L1>0,L1); K1:=IFELSE(CLOSE>H2,-3,IFELSE(CLOSE<L2,1,0)); K2:=VALUEWHEN(K1<>0,K1); TMP1:=K2; DRAWTEXT(REF(CROSS(TMP1,0),1) ,HH,'空'),COLORGREEN,FONTSIZE13; DRAWTEXT(REF(CROSS(0,TMP1),1) ,LL,'多'),COLORRED,VALIGN0,FONTSIZE13; LONG:=REF(CROSS(0,TMP1),1); SHORT:=REF(CROSS(TMP1,0),1); MA40:MA(CLOSE,40); //30日均线 LC:= REF(CLOSE,1); RSI:=SMA(MAX(CLOSE-LC,0),7,1)/SMA(ABS(CLOSE-LC),7,1)*100; //RSI计算 IF BKVOL > 0 && ref(RSI,1) > 70 && RSI_G = 0 THEN BEGIN RSI_G:= 1; END IF BKVOL = 0 && RSI_G = 1 THEN BEGIN RSI_G:= 0; END IF SKVOL > 0 && ref(RSI,1) < 21 && RSI_D = 0 THEN BEGIN RSI_D:= 1; END IF SKVOL = 0 && RSI_D = 1 THEN BEGIN RSI_D:= 0; END DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26); //MACD计算 DEA:=EMA(DIFF,9); //MACD止盈计算 MACD_L:= REF(DEA ,1) < REF(DEA ,2); MACD_S:= REF(DEA ,1) > REF(DEA ,2); ZLOW:=LLV(LOW,10); //周期内低点止损点 HHIGH:=HHV(HIGH,10); //周期内高点止损点 N2:=DAYBARPOS; GAO_X:=HHV(H,N2)+PY; //最高价 DI_X:=LLV(L,N2)-PY; //最低价 /*DI_X <= DI AND */REF(C,1) > MA40 AND LONG , BK(6); //多头开仓-------- /*GAO_X >= GAO AND*/ REF(C,1) < MA40 AND SHORT , SK(6); //空头开仓------- //------------------------------------------------------------------------------------------------------------------------ LOCK_ZLOW:= VALUEWHEN(BKVOL=0, ZLOW); // 开多时锁定低点 LOCK_HHIGH:= VALUEWHEN(SKVOL=0, HHIGH); // 开空时锁定高点 多止损:LOCK_ZLOW; 空止损:LOCK_HHIGH; FLAG_TP_LONG:=IFELSE(BKVOL< 6 ,1,0);//持仓小于开仓数标记 跳过盈利平仓一般逻辑; COND_TP:= CLOSE - BKPRICE >=YL && BKVOL>0 && FLAG_TP_LONG =0; // 20点盈利平仓条件(多头) COND_TP, SP(BKVOL/2); //多平仓一半 DRAWICON(COND_TP,H,'ICO71'); COND:=VOL>REF(HHV(VOL,10),1)*4; //标识出成交量大于前K根K线的成交量最大值的VL倍的K线 DRAWICON(COND,O,'ICO162'); C < LOCK_ZLOW, SP; //周期低点 SCPC, SP; //多头15分死叉 COND, SP; //量突然放大 BKVOL>0 && RSI_G >= 78 && MACD_L ,SP; //RSI在高位MACD向下 COND_BB:= PROFIT/MINPRICE/BKVOL/4 <= 4*MINPRICE && BKVOL>0 && FLAG_TP_LONG =1; // 多头保本单 COND_BB,SP; //多头保本平仓 FLAG_TP_SHORT: =IFELSE(SKVOL< 6 ,1,0); COND_SP:= SKPRICE - CLOSE >= YL && SKVOL > 0 && FLAG_TP_SHORT =0; COND_SP, BP(SKVOL/2); //空平仓一半 DRAWICON(COND_SP,H,'ICO71'); CLOSE > LOCK_HHIGH,BP; //周期高点 COND, BP; // 量突然放大 JCPC, BP; // 空头15分金叉 SKVOL >0 && RSI_D <= 21 && MACD_S ,BP;//RSI在低位MACD向上 COND_LB:= PROFIT/MINPRICE/SKVOL/4 <= 4*MINPRICE && SKVOL>0 AND FLAG_TP_SHORT =1; // 空头保本单 COND_LB, BP; //空头保本平仓 CURRENT_PROFIT:=PROFIT; //获取当前理论逐笔浮盈 盈亏:CURRENT_PROFIT,NODRAW; TIME>=1458 && TIME<=1459 && BKVOL>0,SP; // 多仓收盘平仓 TIME>=1458 && TIME<=1459 && SKVOL>0,BP; // 空仓收盘平仓 DRAWICON(TIME>=1458 && TIME<=1459 && BKVOL>0,CLOSE,'ICO91'); DRAWICON(TIME>=1458 && TIME<=1459 && SKVOL>0,CLOSE,'ICO91'); AUTOFILTER; // 启用一开一平信号过滤 CLOSEKLINE(0); RSI低点:RSI_D,NODRAW; RSI低点:RSI_G,NODRAW;

回复:现在碰到问题是 有持仓时 RSI >70 条件当时是满足 的 RSI_G会被赋值为1 我的理想情况是 有持仓时 RSI >70 条件满足再被赋值 固定住 直到被平仓再恢复为0

回复:这里有大量参数未给出,也不是完整代码,需要你自己用COMMENTARY PRINT等函数调试,找到原因