新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 269

 
Artyom Trishkin:
  1. 例如,有一个信号,可以打开一个买入头寸。
  2. 在订单历史中找到最近关闭的交易。
  3. 见其类型。
    1. 如果是卖出,你可以打开买入----> return(ORDER_TYPE_BUY)。
    2. 如果是买入,那么
  4. 看看这个买入头寸是以什么样的利润结清的。
    1. 如果是负数,我们可以开一个买入----> return(ORDER_TYPE_BUY)。
    2. 如果它是正数,我们就不能打开一个新的Buy ----> return(WRONG_VALUE)。
   double ma;
   int    res;
   bool nomber = OrdersHistoryTotal();
   bool tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY)==true)
   {
   tip=OrderType();
   }
   ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
   if(Bid<ma)
   if(tip!=OP_SELL)
   {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
      return;
     }

我把它写在这里,但还是没有用。有什么问题吗? 请告知。

 

下午好。

四中的条件怎么写:如果每月的第一个星期五是牛市,而

第二个星期一是看跌,那么我们就开出卖出交易

 
Darirunu: 写下条件:如果该月的第一个星期五是一个看涨的星期五,并且

第二个周一是看跌的,那么就开启卖出交易

现在这是个有趣的问题:它可以用来显示解决任何问题的步骤顺序
确定当前的月MM和年YYY。以1.MM.YYY为日期,确定它的星期几
2.我们发明了几个公式(为此我们制作了两个7行的表格),并使用它们来确定我们感兴趣的日子的日期
3.如果在未来的第二个日期 - 输出。
4.利用这些日期,我们确定日线图 上对应的柱状体的数量
5.按其属于牛市-熊市的条数确定。
6.对进入市场 作出结论

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
LRA:

这是一个有趣的问题:它可以用来显示解决任何问题的步骤序列
确定当前的月MM和年YYY。以MM.YYY为日期,确定它的星期几
2.想出一两个公式(为此我们编了两个7行的表格),用这些公式来确定你感兴趣的日子的日期
3.如果在未来的第二个日期 - 输出。
4.利用这些日期,我们确定日线图 上对应的柱状体的数量
5.按其属于牛市-熊市的条数确定。
6.对进入市场 作出结论


事实上,我仍然没有看到代码形式的答案......算法很清楚......。

 
Darirunu: 事实上,我仍然没有看到代码形式的答案......算法很清楚......。

如果算法明确,请写一个程序...如果你有困难,请问...

 
LRA:

如果算法明确--写一个程序...如果你有困难--问...


你一定是个天才))你认为如果我知道我会在这里问吗? 只要写出星期几 就不是问题......问题是如何确定每月的哪一周?Mt4的书中没有说到这一点。

MQL4新手的任何问题,对算法和代码的帮助和讨论

 
Lowech:
   bool nomber = OrdersHistoryTotal();
   bool tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY)==true)
   {
   tip=OrderType();
   }

在这里,我已经预选了它,但它仍然不工作。有什么问题吗,请告知。

我们来看看这部分。在第一行,变量nomber存储了历史上的订单数量。让我们把光标放在OrdersHistoryTotal()上,然后按F1。在这里你可以看到。

intOrdersHistoryTotal()


该函数返回一个整数。但一个Bool只有两个值。那么,一个bool怎么能包含一个int类型的值呢?

第二行包含同样的错误,而且还有一个。你把光标放在OrderType()上,然后按F1。我们看到:该订单必须使用OrderSelect()函数进行预选。

第三行包含一个可怕的情况。1) if(OrderSelect(-如果一个订单被选中,就会有事情被执行。但如果这里发生错误怎么办? 你的程序仍然在运行。2) 应选择一个带有数字nomber的订单。但是否有这样的订单? 如果总数是nomber,最小和最大的订单数是多少?3)代替if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY)==true)几乎任何人都会简单地写if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))和另外一件小事。

我的建议是这样的--从简单的元素开始学习语言,编写简单的脚本并显示结果。检查每一行的结果

 
Darirunu: 问题是你如何确定它是每月的哪一周?Mt4书中没有任何关于

为什么你需要知道现在是每月的哪一周?这不在我的算法中。(只在标点符号后加一个空格)

 
LRA:

为什么我需要知道现在是每月的哪一周?在我的算法中,它没有。(只在标点符号后放一个空格)


我很抱歉,你可能没有注意到这个问题。

四中的条件怎么写:如果每月的第一个星期五是看涨的,并且

第二个星期一是看跌的,那么我们就开始卖出交易。

DayOfWeek()==1 星期一很清楚,但每月的哪个星期一?)

 
Darirunu:

事实上,我从来没有看到一个代码形式的答案......算法是明确的......。

你所需要知道的是每月的第一天是星期 几。剩下的是计算出来的。
原因: