[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 80

 
tommy27:
谢谢,我用Close做了,正如你建议的: ,但
结果只在新条形图出现时才更新,我想看到并记录每个tick的变化

如果EA没有循环,结果将在每个tick 上发生变化。
 

谢谢大家,另外一切都很顺利。

//+------------------------------------------------------------------+
//|                                                        Delta.mq4 |
//|                                                          tommy27 |
//|                                                  tommy27@mail.ru |
//+------------------------------------------------------------------+
#property copyright "tommy27"
#property link      "tommy27@mail.ru"

double 
       StartPrice1,
       Delta1,
       Price00;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Price00 = 5000;
StartPrice1 =  iClose(0,0,0);
//StartPrice1 = Close[0];
Delta1 = MathAbs (Price00 - StartPrice1);
//if (Delta1>1000) Delta1=0;
Comment (Delta1);
Print ("Raznica= ",Delta1);
//----
   return(0);
  }
//+------------------------------------------------------------------+

但主代码只在条形闭合时计数,我会研究一下。

 
PapaYozh:

如果EA没有循环,结果将在每个tick上发生变化。
谢谢你。
 
OrderSelect()中有两个选项:
MODE_TRADES - 订单在开仓和挂单中选择,
MODE_HISTORY - 订单在关闭和删除的订单中选择。

- MODE_TRADES 用于OrdersTotal(),而MODE_HISTORY-只用于 OrdersHistoryTotal(),我的理解是否正确?
- 如果是这样,为什么还需要它们呢?
谢谢你!
 
chief2000:
OrderSelect()中有两个选项: MODE_TRADES - 订单在开仓和挂单中选择, MODE_HISTORY - 订单在关闭和删除的订单中选择。- MODE_TRADES



用于OrdersTotal(),而MODE_HISTORY-只用于 OrdersHistoryTotal(),我的理解是否正确?- 如果是这样,为什么还需要它们呢?谢谢你!


你的理解是正确的。

你的第二个问题不清楚。如果你通过位置选择一个订单,你需要知道订单的 总数量

 
PapaYozh:


你的理解是正确的。

你的第二个问题不清楚。如果你通过位置选择一个订单,你需要知道订单的总数量

这两个参数(MODE_TRADES和MODE_HISTORY)只在SELECT_BY_PO的情况下使用,但你可以完全删除它们(使用MT4中默认的--分别用于OrdersTotal() 和OrdersHistoryTotal())。
这不是一个原则问题,对我来说最主要的是第一个问题的答案。
谢谢你!
 

alsu,如果价格在过去10分钟内上涨超过20点,则开仓买入;如果价格在过去10分钟内下跌超过20点,则开仓卖出。

如果没有问题:如果当前价格比 前一栏的最高价高一些,就开盘买入,如果当前价格比前一栏的最低价低一些,就开盘卖出。

P.S. 打开买入和卖出的代码已经在板上了,所以我不需要描述它们...我更感兴趣的是如何正确写出上述的开放条件...

 
oDin48:

alsu,如果价格在过去10分钟内上涨超过20点,则开仓买入;如果价格在过去10分钟内下跌超过20点,则开仓卖出。

我是在水平线被越过的那一刻准确打开还是在10分钟后打开?)


如果不是太麻烦的话:如果当前价格比前一栏的高点高一点,就开买,如果当前价格比前一栏的低点低一点,就开卖。

extern int level = 10; //в пунктах

....
int start()
{
...

   RefreshRates();

   if(Bid>High[1]+level*Point)
   {
      //BUY
   }

   if(Bid<Low[1]-level*Point)
   {
      //SELL
   }
...
}
 

alsu,确切地说,当穿越时,检查时间,如果它落在时间范围内,就进行交易。

谢谢你。现在要去试试。

 
oDin48:

alsu,确切地说,当你穿越时,检查时间,如果它落在时间范围内,就进行交易。

在这样的变体中,你必须记住过去10分钟的tick历史......代码并非微不足道。