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

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

FileAppend写入的文件无法打开 【疑似Bug】
fileappend函数的问题
FileAppend重复输出问题
fileappend 导出的tbf文件如何打开
FileAppend写入文件后怎么在数据中心-文件查看器里实时展示
嗨嗨嗨!FileAppend 有点问题,在图表和实盘会重复调用。
FileAppend 是在文件中追加一条记录,请问老师,哪个函数是响应配套的,从该文件中读出一条记录的功能
最新K线开仓线可否向右延伸
SetTBProfileString2File 已经不能写入文件了?
fileappend函数不能输出到本地文件

参考下这个例子:

//------------------------------------------------------------------------
// 简称: 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策略修改和重写的权利
//------------------------------------------------------------------------