初学者的问题 MQL4 MT4 MetaTrader 4 - 页 120

 
Ihor Herasko:

是的,我可以看到这一点。而我在下面的帖子中看到了这个问题的答案https://www.mql5.com/ru/forum/160587/page115#comment_6521492。 换句话说,问题在于功能没有被划分为合乎逻辑的子任务。你把解析订单、决定交易行动和执行交易混为一谈。

这样的任务完全可以分三个阶段解决。

  1. 收集将由程序监测的订单信息。这只是订单评估的循环,你已经有了。这个循环的结果必须是订单的数组。
  2. 交易信号的计算。计算结果是一个打开和/或关闭订单的命令。这取决于交易策略。以前,当没有枚举的时候,我使用的代码是:0-没有信号,1-打开买入,-1-打开卖出,2-关闭买入,-2-关闭卖出。
  3. 执行一次交易操作。如果有一个交易信号,并且其中一个订单(第1点)适合它,就会进行一次交易操作。在某些情况下,我们甚至退出OnTick,以便继续下一个tick。

嗯,谢谢你。至少很清楚该怎么做。我将尝试自己找出 "如何 "做这件事。虽然我对数组还不熟悉。无论如何,再次感谢你。

 

for(int i=OrdersTotal()-1; i>=0; i--)

{

OrderSelect(i,SELECT_BY_POS)。

如果(OrderMagicNumber()==Magic && OrderType()==OP_SELL)

突破。

警告是:必须检查'OrderSelect'的返回值

这个'OrderSelect'还应该如何检查?

如果我这样做:j=OrderSelect();这是否正确?


 
Rewerpool:


for(int i=OrdersTotal()-1; i>=0; i--)

{

OrderSelect(i,SELECT_BY_POS)。

如果(OrderMagicNumber()==Magic && OrderType()==OP_SELL)

突破。

警告是:必须检查'OrderSelect'的返回值

这个'OrderSelect'还应该如何检查?

如果我这样做:j=OrderSelect();这是否正确?


 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
 
Alekseu Fedotov:

它不起作用!(

((((

 
我已经写入文件,一切正常,但现在我如何保存数据,如 "eurusd" "1.2242"临时数据等?
 
Mickey Moose:把它写入一个文件,一切都很好,但现在我如何疏通数据,例如 "eurusd""1.2242"临时数据等?

string s=FileReadString(F1); // 读取文本文件的下一行
StringSplit(s, " , " ,a); // 将逗号分隔的元素分割成数组
datetime T1=StrToTime(a[4]); // 进一步,转换进行中。..
int ord=StrToInteger(a[8]);
double Price=StrToDouble(a[12]);

 
novichok2018:

嗯,谢谢你。至少更清楚该怎么做了。我将尝试自己找出 "如何"。不过我对数组还不熟悉。总之,再次感谢。

至少写一个区块,给我看看。在这种情况下,他们会进一步告诉你。

 
Rewerpool:

没有帮助!(


仔细阅读,再次。

 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

整个代码将看起来像这样

   for(int i=OrdersTotal()-1; i>=0; i--) 
     {
     if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
       if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
          {
         break;
          }
        }
      }
 
Rewerpool:

它不起作用!(


所以你没有做任何事情。你在上面写了。

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

而你没有检查就把它写出来了。不过,这样看起来更有可读性。

for (int i = OrdersTotal() - 1; i >= 0; --i)
{
   if (!OrderSelect(i, SELECT_BY_POS))
      continue;
   ....
}
 

@Ihor Herasko @Alekseu Fedotov

谢谢你!!!它的作用是这样的!