错误、漏洞、问题 - 页 284

 
alexvd:

止损点和止盈点是如何设置的?

你是先开仓,然后才修改,还是立即指定适当的SL和TP?

先开一个仓位,然后再修改它...
 
Voodoo_King:

build 384.似乎我发现了另一个错误......在查看历史记录时,不显示订单 - 设定的止损和止盈水平...


它们在设置订单时被 "显示"。当服务器使用止损平仓时,它们不会被显示出来,这很自然,因为服务器在平仓 时不会设置止损。
















































































































 

我发现了这样的事情。我不知道这是否是一个错误,但它看起来像一个。下面的代码。

lot=NormalizeDouble(My_AccountInfo.MaxLotCheck(_Symbol,ORDER_TYPE_BUY,latest_price.ask)/10,2);
printf(lot);

测试员日志中的输出(按1000美元的押金)。

2011.01.28 20:06:48    Core 1    2010.01.04 00:56:00   0.07000000000000001

函数(NormalizeDouble)不是应该删除7之后的所有非零数字吗?

以为我在表格中找到了一个解决方案。lot=floor((My_AccountInfo.MaxLotCheck(_Symbol,ORDER_TYPE_SELL,new_price.ask)/10)*100)/100。

但我也得到了类似的结果。该怎么做--在贸易查询中是多么关键?

 

下午好!

我在循环的主体中加入了Comment函数,所以它可以显示循环执行状态的百分比和其他一些数值。这个简单的算法在循环体中执行了5分钟(如果不是更多的话),但它只重新计算了32000个条形值(Close,High,Low,Open)。我抱怨说在循环运行时,数组是动态增加的,但事实并非如此。在对算法进行调试后,Comment已经被删除了--现在的计算是在神马情况下进行的。

评论功能是否真的会减慢程序的执行 速度?坦率地说,我很惊讶。

系统:Windows XP,终端5.00.384。

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Программы MQL5 / Выполнение программ - Документация по MQL5
 
KffAlex:

下午好!

我在循环的主体中加入了Comment函数,所以它可以显示循环执行状态的百分比和其他一些数值。这个简单的算法在循环体中执行了5分钟(如果不是更多的话),但它只重新计算了32000个条形值(Close,High,Low,Open)。我抱怨说在循环运行时,数组是动态增加的,但事实并非如此。在对算法进行调试后,该评论已被删除--现在的计算是在神马情况下进行的。

评论功能是否真的会减慢程序的执行 速度?坦率地说,我很惊讶。

系统:Windows XP,终端5.00.384。

我注意到同样的效果。
 

通过在历史上 使用开盘价 运行专家顾问 卖出头寸不是在开盘价开的,而是在高价开的,并在低价关闭。

为什么会发生这种情况?

专家顾问仅使用Open[0]价格搜索开仓和平仓的信号。 使用EventSetTimer(1)。

 
Valmars:

它们在下订单时被输出。当服务器使用止损点平仓时不可用,这很自然,因为服务器在平仓时不设置止损点。

怎么了?)下订单时,它们在哪里显示出来?

我说的是 "历史 "报告,我在止损和止盈栏 里没有看到任何东西,尽管这些头寸有这些值。

我的意思是,如果它已经被触发,我可以看到它,但不是吗?

 

我有以下问题。

任务是在测试阶段将公平值写入一个特定的文件,擦除以前的值。

但这里发生的情况如下。

1.当OnInit()中没有FileDelete() 时,会在现有的基础上写入。

2.但是当OnInit()中的FileDelete()出现时,尽管OnCalculatde()中也有同样的股权记录,但结果文件却是空的。

为什么会发生这种情况,如何避免?

以下是代码。

#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
double   Values[];
string   Array[];
string   filename="equity FileWrite25.txt";
int      handle;
int      NumberCopyElements;
string   common_folder;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(){
   SetIndexBuffer(0,Values,INDICATOR_DATA);
   PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, 100);
   PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, EMPTY_VALUE);
   ArraySetAsSeries(Values, false);
   //---
   common_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH);
   FileDelete(filename,FILE_COMMON);
   return(0);
}
int OnCalculate(const int        rates_total,
                const int        prev_calculated,
                const datetime&  time[],
                const double&    open[],
                const double&    high[],
                const double&    low[],
                const double&    close[],
                const long&      tick_volume[],
                const long&      volume[],
                const int&       spread[])
{  
   uint written;
   handle=FileOpen(filename,FILE_WRITE|FILE_READ|FILE_COMMON|FILE_TXT);
   if(handle!=INVALID_HANDLE){
      FileSeek(handle,0,SEEK_END);
      written=FileWrite(handle,TimeToString(TimeCurrent())," ",AccountInfoDouble(ACCOUNT_EQUITY));//TimeToString(time[i]),
      PrintFormat("Equity FileWrite25 - OnCalculate(): Записано %d байт в общую папку всех терминалов - %s",written,common_folder);
   }
   else {
      Print("Equity FileWrite25 - OnCalculate(): Не удалось открыть файл ",filename,".  Ошибка ",GetLastError());     
   }
   FileClose(handle);
   return rates_total;
}
void OnDeinit(const int reason){
   FileClose(handle);
}
 
Voodoo_King:

怎么了 :)他们在哪里显示,当一个订单被放置?

我说的是 "历史 "报告,我在 "止损 "和 "获利 "两栏中没有看到任何东西,尽管这些头寸有这些值。

如果它起作用了,我可以看到,但如果没有,我怎么知道是否设置了止损?

它显示在 "历史/订单 "选项卡中,你认为订单中的止损和止盈,即服务器在触发止损时关闭头寸,等于什么?你看的是订单的确切参数。
 
DV2010:

我有以下问题。

任务是在测试阶段将公平值写入一个特定的文件,擦除以前的值。

但这里发生的情况如下。

1.当OnInit()中没有FileDelete()时,会在现有的基础上写入。

2.但是当OnInit()中的FileDelete()出现时,尽管OnCalculatde()中也有同样的股权记录,但结果文件却是空的。

为什么会发生这种情况,如何避免?

代码如下。

我已经得到了测试模式检测的解决方案,但其中有一些经验主义的东西让我感到尴尬

(我试图找到一个机会,以编程方式获得测试器的开始时间,从它设置缩进到历史的深处,从而切断真实时间。

但遗憾的是没有找到)。

   if(rates_total - prev_calculated > 1 && rates_total - prev_calculated < 10000){
    FileDelete(filename,FILE_COMMON);
   }   
但有一个性质完全不同的问题,那就是在改变测试期 后,根据测试结果的指标 会因某种原因而消失,但如果之后你对新的时期进行编译,那么运行测试器会显示它们。

错误?