老师 请问一下MarketPosition==0 Buy(1,close);
if(close<LastEntryPrice-N*minpoint) Buy(1);这种想法如何才能使后续k线使用最新价判断是否比前一个开仓价小n个点
例如:第一根k线5000开仓 第二根k线开仓价为4800满足条件 开仓 最新价一直为4600及其4400都会判断 都进行开仓 这种怎么实现呢 目前用close判断 每根k线只存在一个信号
1.你这个代码大致的意思也没错
LastEntryPrice就是上一次的开仓价
2. 编写时很多问题,需要调试。你碰到具体什么问题
老师 我遇到问题就是每根开平仓 一根k线都只有一个信号 因为我准备编写一个类似网格的算法 但是现在所有k线都只存在一个信号 需要把代码发给您参考一下吗 想要显示一根k线上多个信号 因为一根k线也会有多个价格满足
//------------------------------------------------------------------------
// 简称: LM08_grid
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
Numeric N(2);
Vars
Series<Numeric> minpoint;
Series<Numeric> Flag;
Series<Numeric> ShangPrice;
Series<Numeric> PingPrice;
Defs
//此处添加公式函数
Events
OnInit()
{
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格
AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
minpoint = MinMove * PriceScale;
If(MarketPosition==0)//初次建仓
{
Buy(1);
Flag=1;
ShangPrice=longLastEntryPrice-N*minpoint;
PingPrice=longLastEntryPrice+N*minpoint;
Commentary(\"第一次建仓价格\"+Text(EntryPrice));
}
If(Flag==1&&MarketPosition>0&&Close<=ShangPrice)
{
Buy(1);
Flag=1;
PingPrice=longLastEntryPrice+N*minpoint;
ShangPrice=longLastEntryPrice-N*minpoint;
Commentary(\"开仓后加仓\");
}
If(Flag==0&&MarketPosition>0&&Close<=ShangPrice)
{
Buy(1);
Flag=1;
ShangPrice=longLastEntryPrice-N*minpoint;
PingPrice=longLastEntryPrice+N*minpoint;
Commentary(\"平仓后加仓\");
}
If(Flag==1&&MarketPosition>0 && Close>=PingPrice)
{
Flag=0;
Sell(1);
PingPrice=Close+N*minpoint;
Commentary(\"开/加仓后第一次平仓\");
}
If(Flag==0&&MarketPosition>0 && Close>=PingPrice)
{
Flag=0;
Sell(1);
PingPrice=Close+N*minpoint;
ShangPrice=Close-N*minpoint;
Commentary(\"平仓后继续平仓\");
}
Commentary(\"加仓\"+Text(ShangPrice));
Commentary(\"减仓\"+Text(PingPrice));
Commentary(\"minpoint:\"+Text(minpoint));
Commentary(\"第一次建仓价格\"+Text(EntryPrice));
Commentary(\"加仓价格\"+Text(longLastEntryPrice));
Commentary(\"最近一次平仓价格\"+Text(ExitPrice));
}