FileAppend函数,在最新的k线重复写入文件的问题

我想将成交日志写入文件,历史的成交日志,只写入了一次,很合理,但是最新的K线上的成交日志,会不停地写入日志,如果k线是1分钟的,会写入100多次。我试了用状态变量,写入一次变为true,作为判断,等新的k线出来再赋值为false;还试了记录一下写入时间,同一时间不再重复写入,但是这两种都没用,还是不同的写入,请问贵公司有合适的方案吗?有合适的代码片段吗?还是这个问题无法解决呢?如果无法解决我就不再试了

参考下这个例子://------------------------------------------------------------------------ // 简称: Samp_LogOnlyOnce // 名称: 示例-实时只记录一次日志 // 类别: 策略应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params Numeric FastLength(5); // 短期指数平均线参数 Numeric SlowLength(20); // 长期指数平均线参数 Vars Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; Global String LongLogMsg; Global String ShortLogMsg; Defs Integer LogFile(StringRef str) { If(IsTradeEnabled) { FileAppend("D:\\" + FormulaName() + ".txt", "[" + Text(SystemDateTime()) + "] " + str); } Return 0; } Events OnBarOpen(ArrayRef<Integer> indexes) { LongLogMsg = ""; ShortLogMsg = ""; } OnBar(ArrayRef<Integer> indexs) { AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1",AvgValue1); PlotNumeric("MA2",AvgValue2); If(MarketPosition <> 1 && AvgValue1[1] > AvgValue2[1]) { Buy(0,Open); String logmsg = DateTimeToString(Date+Time) + ", Buy, 价格=" + Text(Open); If(logmsg <> LongLogMsg) { LogFile(logmsg); LongLogMsg = logmsg; } } If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]) { SellShort(0,Open); String logmsg = DateTimeToString(Date+Time) + ", SellShort, 价格=" + Text(Open); If(logmsg <> ShortLogMsg) { LogFile(logmsg); ShortLogMsg = logmsg; } } } //------------------------------------------------------------------------ // 编译版本 2026/6/30 142205 // 版权所有 tblaocai // 更改声明 TradeBlazer Software保留对TradeBlazer平台 // 每一版本的TradeBlazer策略修改和重写的权利 //------------------------------------------------------------------------