我已经尝试过使用循环实现的标准方法。如果在刻度数据上完成,这将需要很长时间,因为传递的 px 列表会很大。有没有一种不使用循环的有效方法。可能以某种方式使用列表?
tlstop: {[ls; entry; loss; pxs]
origentry: entry;
i:0;
curloss: 0f;
exitpx: 0n;
while[(i<count pxs) and (curloss>loss);
curpx: pxs[i];
curpnl: $[ls=`l; curpx-entry; entry-curpx];
exitpx: $[curpnl<=loss; curpx; exitpx];
entry: $[curpnl>curloss; curpx; entry];
curloss: curpnl;
i: i+1;
];
exitpx: $[exitpx=0n; last pxs; exitpx];
ans: $[ls=`l; exitpx-origentry; origentry-exitpx];
ans
};
/tlstop[`s; 100.0; -2.0; (99 98 97 96 93)]