20250425-V1.1:
1、原指标改为当前K线有信号即满足,即不使用延后1根的方式
(此方式在出现大阴阳线时可能会出现闪烁的情况,此大K线同时满足之前的最高价,也满足之前的最低价时,就会出现)
2、修复开仓条件(做多为例),即只要是在红线之上,且均线满足都可开仓
----------------------------------------------------------------------
策略设计说明----初始需求_20250425
转指标:
N:=15;
HH:=HHV(HIGH,N);
LL:=LLV(LOW,N);
LIJIHH1:=BARSLAST((HH>REF(HH,1)));
LIJILL1:=BARSLAST((LL<REF(LL,1)));
LIJINB:IF(LIJIHH1>LIJILL1,HH,LL),COLORWHITE,DOT,LINETHICK2;
LIJINS:IF(C>LIJINB,LL,DRAWNULL),COLORRED,DOT,LINETHICK2;
LIJINt:IF(C<LIJINB,HH,DRAWNULL),COLORGREEN,DOT,LINETHICK2;
DRAWCOLORKLINE(LIJIHH1<LIJILL1&&ISDOWN,COLORRED,0);
DRAWCOLORKLINE(LIJIHH1<LIJILL1&&ISDOWN=0,COLORRED,1);
DRAWCOLORKLINE(LIJIHH1>LIJILL1&&ISDOWN,COLORGREEN,0);
DRAWCOLORKLINE(LIJIHH1>LIJILL1&&ISDOWN=0,COLORGREEN,1);
*/
Params
Numeric Lots(1); //版本:V1.0----手数
Numeric N(15); //原指标的参数,默认15
Vars
Global Numeric jump; //每跳多少元
Global String tmpMSyms2; //当前的真实主力合约
Series<Bool> cond_b; //做多条件
Series<Bool> cond_s; //做空条件
Series<Numeric> cond; //红绿线
Series<Numeric> LIJINB;
Series<Numeric> HH;
Series<Numeric> LL;
Plot pen;
Events
OnInit()
{
print("----start_main--" + "Symbol:" + Symbol());
pen.setOption("LIJINB", "width", Enum_2Pix());
pen.setOption("LIJINB", "line-display", "interval");
if(1 == 1)
{
AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice());//映射真实价格。
}
//当前的真实主力合约
Array<String> tmpMSyms; //映射集合
if(GetOrderMapRelatedSymbols(tmpMSyms))
{
Integer i3;
for i3 = 0 to GetArraySize(tmpMSyms) - 1
{
if(!(FindFirstOf(tmpMSyms[i3], "888") == 2 or FindFirstOf(tmpMSyms[i3], "000") == 2 or FindFirstOf(tmpMSyms[i3], "999") <= 2) and tmpMSyms[i3] != "")
{
tmpMSyms2 = tmpMSyms[i3];
print("当前真实主力合约:" + tmpMSyms2);
break;
}
}
}
Else
{
tmpMSyms2 = symbol;
print("当前真实主力合约:" + tmpMSyms2);
}
jump = MinMove() * PriceScale(); //每跳多少元
}
OnBar(ArrayRef<Integer> indexs)
{
//麦语言指标------------------Begin
HH = Highest(HIGH, N);
LL = Lowest(LOW, N);
Numeric LIJIHH1 = NthCon((HH > HH[1]), 1);
Numeric LIJILL1 = NthCon((LL < LL[1]), 1);
if(LIJIHH1 > LIJILL1)
{
LIJINB = HH;
}
Else
{
LIJINB = LL;
}
if(C > LIJINB)
{
pen.setOption("LIJINB", "color", red);
pen.line("LIJINB", LIJINB);
cond = 1; //红线
}
if(C < LIJINB)
{
pen.setOption("LIJINB", "color", Green);
pen.line("LIJINB", LIJINB);
cond = -1; //绿线
}
Commentary("LIJINB: " + text(LIJINB));
//麦语言指标------------------End
//开平仓---------------------------Begin
if(MarketPosition == 0 and cond_b)
{
buy(lots, O);
Commentary("开多或反手做多");
}
if(MarketPosition == 0 and cond_s)
{
SellShort(lots, O);
Commentary("开空或反手做空");
}
//开平仓---------------------------End
//最后输出相关信息
Commentary("当前Bar序号:" + text(CurrentBar));
Commentary("1跳1手是多少点:" + text(jump));
Commentary("1点1手是多少元:" + text(ContractUnit * BigPointValue));
Commentary("浮动盈亏(以当根K线收盘价算出):" + text(PositionProfit));
Commentary("平均建仓价(后复权):" + text(AvgEntryPrice));
Commentary("平均建仓价(不复权):" + text(AvgEntryPrice / rollover));
Commentary("持仓手数(多):" + text(longCurrentContracts));
Commentary("持仓手数(空):" + text(shortCurrentContracts));
}看来不是自己写的代码 或者没有阅读代码的内容 好在代码不是AI写的
你的开多和开空cond_b cond_c根本没赋值 怎么会有交易信号呢
(非回复ps:代码块可以复制出来,直接看还是看不到)
代码问题,开仓条件看上去有问题
一个信号没有说明条件没满足过