任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 976

 
AlexeyVik:
而你的母亲不允许阅读文件?例如,SendMail

是的,这个功能我当然知道,我的意思是--在终端窗口的一个标签,(交易、资产、账户历史、新闻、警报、邮件等)当邮件来到那里(在内部邮件终端)发送短信或电子邮件(例如接收关于服务器重启的消息等)?

 
optionany:

是的,这个功能我当然知道,我的意思是--在终端窗口的一个标签,(交易,资产,账户历史,新闻,警报,邮件等)当邮件来到那里(在内部邮件终端)发送短信或电子邮件(例如接收关于重新启动服务器的消息,等等)?

因此,在思考这个问题的时候,要把问题表述清楚。

如果你想得很清楚,你就会想得很清楚......。

 

你好。我不明白我的错误是什么,或者说我的程序中的这块有什么缺陷。

//--未结订单的单独核算

for(int i=OrdersTotal()-1;i>=0;i--)//OrdersTotal()-1;i>=0;i-- //Loop of orders
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。// 如果找到了一个订单,那么。
{
if(OrderSymbol()!=符号()||OrderMagicNumber()!=Magic) 继续;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
Total++;
}
return;
}
//----

for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()!=符号()||OrderMagicNumber()!=Magic) 继续;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_SELL)
Total++;
}
return;
}
//----

该EA在策略测试器和模拟账户中稳定运行,但在编译时产生了两个警告:"OrderSelect "的返回值应被检查,我无法克服。如果可能的话,请告诉我我写错了什么或不完整。

 
YuryVL:

你好。我不明白我的错误是什么,或者说我的程序中的这块有什么缺陷。

//--未结订单的单独核算

for(int i=OrdersTotal()-1;i>=0;i--)//OrdersTotal()-1;i>=0;i-- //Loop of orders
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。// 如果找到了一个订单,那么。
{
if(OrderSymbol()!=符号()||OrderMagicNumber()!=Magic) 继续;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
Total++;
}
return;
}
//----

for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()!=符号()||OrderMagicNumber()!=Magic) 继续;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_SELL)
Total++;
}
return;
}
//----

该EA在策略测试器和模拟账户中稳定运行,但在编译时显示一个警告:应检查 "OrderSelect "的返回值,我无法克服这个问题。如果可能的话,请告诉我我写错了什么或不完整。


SRS插入代码!为什么要有2个循环,在检查了 "否 "之后,再检查 "是 "和 "总",并分别读取两种类型的数据并保存在内存中?没有人会理解这一点!你必须建立逻辑,让大家明白你想要什么,那么编译器也会明白!"。
 
YuryVL:

你好。我不明白我的错误是什么,或者说我的程序中这块的不足之处。

...

1) 要在这里正确粘贴代码,请点击SRC,然后在方框中复制你的代码(如下图)。


2) 试试这个代码。

int Total_BUY=0, Total_SELL=0; // новые переменные как счетчики ордеров

//---Раздельный учёт открытых ордеров
for(int i=OrdersTotal()-1; i>=0; i--) // Цикл перебора ордеров
  {
   // OrderSelect() надо выбирать с помощью if
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)); // Если найден ордер, то:
     {
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
      else
        {
         if(OrderType()==OP_BUY)  Total_BUY++;  // считает открытые позиции на покупку
         if(OrderType()==OP_SELL) Total_SELL++; // считает открытые позиции на продажу
        }
     }
  }
 

我怎样才能获得警报

Alert(OrderOpenPrice());

显示订单的开盘价,小数点后5位?NormalizeDouble(OrderOpenPrice(),Digits)没有帮助,(订单是预先选择的)

 
JoinDoe:

我怎样才能获得警报

显示小数点后5位的订单开盘价?NormalizeDouble(OrderOpenPrice(),Digits)没有帮助,(订单是预先选择的)

Alert(DoubleToString(OrderOpenPrice(),Digits));
 
Leo59:
你好,亲爱的!

请帮助翻译寻找两条线段的交点坐标的算法

摘自文章。

这很简单!
x1,y1和x2,y2是第一段的顶点的坐标。
x3,y3和x4,y4是第二段的顶点的坐标。

为了找到交点,我们要做直线的方程。
第一个方程式。
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
第二方程
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
这些方程定义了一条通过两点的直线,这就是我们需要的。
从这些方程中,我们通过以下公式找到x和y。
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
由于我们的线相交,它们有一个共同的交点,坐标为(x,y),我们需要找到这个交点。
为了使交点属于我们的线段,我们需要对其进行约束,即检查条件。
如果
(((x1<=x)and(x2>=x)and(x3<=x)and(x4>=x))或((y1<=y)and(y2>=y)and(y3<=y) and(y4>=y))
则这些线段有一个交点,如果没有,则没有交点。
你还应该用角度系数检查这些线段的平行度。
k1:=(x2-x1)/(y2-y1)。
k2:=(x4-x3)/(y4-y3)。
其中k1和k2是线段的斜角与轴ОХ的正方向的切线,如果k1=k2,那么线段是平行的,所以它们没有交点。

也许有人在档案馆里有一个现成的?


也许
 

MT4 中是否有任何可能性或功能,通过短信或电子邮件将信息重定向到内部终端邮件(关于杠杆变化、服务器重新启动等)。

P.s 终端窗口的一个标签,(交易、资产、账户历史、新闻、警报、MESSAGE 等)?

 
亲爱的论坛用户,你们好

我已经开始学习MQL4,在编写一个简单的指标时,我遇到了一个我无法解决的问题。问题的本质。

1_如何找到High[i - end of day],我有一个简单的循环Close[i]-Open[i+1],我需要找到High[i - end of day]。例如,从[i],[1],[2]和到一天结束(PERIOD_H1)。我不知道该怎么做。有 "iHigh "功能,但它有点不同。

2_这还不是全部,抱歉我的脸皮太厚,还有'iBars'函数(返回相应符号和时期的历史条数)。你能告诉我,哪种函数组合不仅能计算出有时间的条数,比如,在history(PERIOD_H1)中的'12:00'或'15:00',还能计算出有时间的条数。

我翻阅了所有的手册,也许我忽略了什么,但我没有找到任何合适的东西。使用搜索引擎,结果是一样的。可能知道哪里讨论过这些问题,请把链接发给我。

提前感谢!