历史条件满足也算吗?


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呢?  历史满足也算吗? 如果要实时条件满足才赋值 赋值不在改变锁定 直到没有持仓初始化。要怎么写呢?

TBQ3空格算字符串吗?
系统函数也需要声明吗?
请教下当日盈亏如何计算?我怎么都算不平。
自动交易条件不满足也执行了IF内的程序
几何到底是怎么算的?
老师,K线图下面加载一个Macd技术指标,这算两个图层还是算一个图层
由信号闪烁产生的交易,后续满足平仓条件时,可以平仓吗
请问可以在满足条件的时候创建一个临时变量吗?
想问一下大家的开拓者也会崩溃吗
股票也需要用换月信号代码吗

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等函数调试,找到原因