提问人:StickFix 提问时间:10/12/2023 更新时间:10/12/2023 访问量:21
当它处理文件时,没有任何反应,MQL4
Nothing happens when it comes up to handle a file, MQL4
问:
我对我所看到的正在发生的事情感到有些困惑,或者更确切地说,我对我没有看到发生的事情感到困惑。 在我接下来向您展示的代码中,代码从 if(OrdersTotal()>0) 开始工作,但之前的所有内容根本没有给出任何生命迹象。没有错误,什么都没有。甚至打印也不起作用。但正如我所说,在那之后,“Print(”Wtf is happening here?“一切都开始工作了。有什么想法吗?
当我尝试在 OnTick() 函数中使用相同的代码将某些内容写入同一文件时,也会发生同样的情况。
我已经做了什么: 我在 StackOverflow 中研究了另一个类似的主题,并检查了答案,但没有成功。 我还多次尝试询问 ChatGPT,并检查了它给我的所有答案和提示。 我把这段代码复制到一个脚本中,它运行良好。 由于我再次编写了该代码来打开文件,因此我复制了我过去所做的代码来做同样的事情,但是在过去的 EA 中它可以工作,而在现在的 EA 中它不起作用。 我用 GetLastError() 填充了这部分代码,但它从未出现任何错误。
提前非常感谢!
bool Flag,FlagBuy,FlagSell;
int Error;
int TicketLTL_A_S,TicketLTL_B_S,TicketLTL_C_S,TicketLBL_A_S,TicketLBL_B_S,TicketLBL_C_S;
int TicketLTL_A_B,TicketLTL_B_B,TicketLTL_C_B,TicketLBL_A_B,TicketLBL_B_B,TicketLBL_C_B;
int TakeProfit,StopLoss; // Has to be integer, not bool.
int filehandle;
double Spread,FirstRefPrice,Interval,Lots;
double LadderStepTop_LevelC,LadderStepTop_LevelB,StepUpPrice,LadderStepTop_LevelA,LadderStepBottom_LevelA,StepDownPrice,LadderStepBottom_LevelB,LadderStepBottom_LevelC;
int fileHandle;
string fileName="AccountStatus.csv";
string dataRow;
int OnInit() {
// Please adjust the following parameters:
Spread=Ask-Bid;
Interval=0.002;
Lots=0.01;
TakeProfit=1; // 1=activate, 0=deactivate
StopLoss=0; // 1=activate, 0=deactivate
//File for statistics. It simply doesn't work, without any error.
fileHandle = FileOpen(fileName, FILE_WRITE|FILE_CSV); //Open the file for writing (create it if it doesn't exist)
if (fileHandle != INVALID_HANDLE) { // Check if the file was opened successfully
Print("File opened/created successfully.");
// Write data to the file
dataRow = "Init Date;Time"; // Replace with your data headers
FileWrite(fileHandle, dataRow); // Write the header row
dataRow = TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES);
FileWrite(fileHandle, dataRow);
dataRow = "DateTime;Balance;Equity;Margin";
FileWrite(fileHandle, dataRow);
FileClose(fileHandle);
}
else {
Print("Error opening the file: ", GetLastError());
}
Print("Wtf is happening here? This print looks to be inhibited. ",GetLastError()); // Up to this, nothing happens at all.
// It begins to work from here on.
if(OrdersTotal()>0) { // If there are any order placed, opened or pending, then
if(OrderSelect(0, SELECT_BY_POS)) { // Select any order from the pool, like the first=0
答:
溶液:
在看到其他奇怪的事情发生后,当我再次编译 EA 时,它应该在图表上重新启动 EA 时什么也没发生,我想重新安装 MT4 平台。但是等等:让我们先测试不那么激进的方法,因为其他 EA 运行良好。
我只是“保存为......”不同名称的 EA,编译它,将其附加到图表上,哇!现在一切正常。
我认为可能已经发生的事情是,在多次编译同一个 EA 之后,MT4 平台中一定有关于这个特定 EA 的问题。 重新启动该过程或将其放在另一个轨道上是解决方案。
评论