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

 

我想做一个小鸡,在每5个订单后计算利润。它似乎在计算,但有一个错误 "4051函数参数的无效值 "为什么?


input int input_step=5;
int step=input_step;

void start()
{
int h, history=OrdersHistoryTotal();
double orderProfit=0;
 if(history==step)
  {
   for(h=history; h<=history; h--)
    {
    if(OrderSelect(h,SELECT_BY_POS,MODE_HISTORY)==true)
      {
      orderProfit=orderProfit+OrderProfit();
      Print("profit=",orderProfit);
      } 
    }
    step=step+input_step;
  }
  return;
}



 

亲爱的Guru,您好...

在终端窗口滚动浏览数据 > 历史记录 ...

......并以某种方式将终端窗口的位置移至图表窗口之上...

...谁能建议如何将终端窗口移回图表窗口的下方?


我将会非常感激。

 
Yaroslav Nykula:

亲爱的Guru,您好...

在终端窗口滚动浏览数据 > 历史记录 ...

......并以某种方式将终端窗口的位置移至图表窗口之上...

...谁能建议如何将终端窗口移回图表窗口的下方?


我将会非常感激。


用鼠标抓住十字架下面的横杆,把它拖到你喜欢的地方。

 

你好,请你告诉我如何使EA在三次亏损后停止交易(有相同的神奇数字)?在这样的一次失利之后

int flag==0。

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--)

{

如果(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY)

{

如果(OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0)

flag=1; }}}


三次失利呢......?

 
Alekseu Fedotov:

用鼠标抓住十字架下面的横杆,把它拖到你喜欢的地方。


谢谢你...我双击它,把它拖下来......。我自己并没有想到这一点。

 
defailer7:

你好,请你告诉我如何使EA在三次亏损后停止交易(有相同的神奇数字)?在这样的一次失利之后

int flag==0。

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--)

{

如果(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY)

{

如果(OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0)

flag=1; }}}


输了三场呢?

我自己是个初学者。也许可以这样做

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--) 
           {
            if(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY) 
             {
             if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))
             flag=1; }
            if(OrderSelect(pos_buy-1,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY) 
             {
             if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))
             flag2=1; }
            if(OrderSelect(pos_buy-2,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY) 
             {
             if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))
             flag3=1; }
           }
  if(flag==1 && flag2==1 && flag3==1)bool flag_trex=true;
 
Baruandreas:

我自己是个初学者,也许可以这样做


非常感谢你,这一切都解决了。

 

你好。
你能告诉我如何按时间限制EA交易吗?
我尝试了论坛上的很多方法,但都没有用,我对写作一点都不了解。
如果你能直接指出要放什么,那就更好了。

 
defailer7:

你好,请你告诉我如何使EA在三次亏损后停止交易(有相同的神奇数字)?在这样的一次失利之后

int flag==0。

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--)

{

如果(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY)

{

如果(OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0)

flag=1; }}}


三次失利如何......?


我也是刚开始学习!!!。Flag++,如果(flag==3)退出。

而损失却小于零。
 
kuzhakov:

你好。
能否请您告知如何确定EA的时间框架。
我从论坛上尝试了很多方法,但都不奏效。
如果我可以直接用手指着插入信息的地方,那就太好了。


我不能把完成的代码发给你,我是用手机浏览的。

有一个函数可以返回酒吧开放时间

试着在函数中加入一个数字,它将返回以一天为周期的条形图的开放时间。

返回相应图表的条形图开放时间的值(由shift参数指定)。

数据时间 iTime(
字符串,// 符号
inttimeframe,// period
intshift//shift
);


期间日

0档

iTime(euro, day, today is zero)+1= Time 00-00-01

一分钟内有60秒

iTime(euro, day, today is zero)+60= time 00-01-00-00 以此类推。

例如,我们希望我们的EA能在01-00-00开始工作

如果((iTime(Symbol(),PERIOD D1,0)+3600)<TimeCurent()工作

这就是我在电话中能帮助你的全部内容。

你也可以返回当前的小时分钟,并进行比较,祝你好运!