[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 371

 
ILL:
所有连((((
对不起,我弄糊涂了--你应该把1放在那里,这样就正确了。我的意思是图表上的收盘价/收盘价将与函数中的价格一致。
 
khorosh:
对不起,我弄糊涂了--你必须把1放在那里,然后才会正确。我的意思是图表上的收盘价/收盘价将与函数中的价格一致。

欢呼吧!这是工作!!!!

非常感谢您!

 

看看吧!

//+------------------------------------------------------------------+
//| скорость.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double razniza=20;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
double HIGH;double LOW;
int start()
{ HIGH=iHigh( NULL, PERIOD_M1, 0) ;
LOW=iLow( NULL, PERIOD_M1, 0);if (HIGH-LOW>razniza*Point || LOW-HIGH<0-razniza*Point)
Alert("Движение!!!",Symbol() );



// PERIOD_M1;PRICE_HIGH;PRICE_LOW;double High[];iHigh( NULL, PERIOD_M1, 0) ; iLow( string symbol, int timeframe, int shift) ;

//----

//----
return(0);
}
//+------------------------------------------------------------------+
 
Dimka-novitsek:

看看吧!

哇!
 
谢谢你!!!!!
 
Zhunko:

好了,终于来了!请在这里 阅读。只有在专家顾问和脚本启动功能中才有等待。在所有其他地方,它被严格禁止。

你的代码不符合MQL4的标准。另外,有地方写到,在系统调用过程中,ininit和deinit函数的等待时间被限制在2.5秒。然后,该函数被强行终止。

一切正常。这里是实时迷你系统的代码。在start()函数之外。当然,把它放在init()中是绝对不可取的。

下面是在工作终端上检查的代码;订单打开,所有的警报都写在信息窗口中。函数Sleep()也是

函数Sleep()也能正常工作。 我在30秒的等待时间内检查了它 - Sleep(30000)。尽管这样的等待是绝对不必要的,但50毫秒已经足够了。

//--- input parameters
  extern int       int10 = 10; // вызов процедуры каждые 10 сек.
  extern int       int30 = 30; // вызов процедуры каждые 30 сек.
  extern int       int60 = 60; // вызов процедуры каждые 60 сек.                

  int  orders; // кол-во открытых ордеров

int init()
  {
   bool end = 1; // для завершения работы установить в false
   
   bool f_int10 = 1; // флаг разрешающий прерывание int10
   bool f_int30 = 1; // флаг разрешающий прерывание int30
   bool f_int60 = 1; // флаг разрешающий прерывание int60
   
   
   int  St_Time_10; // стартовое время отсчета 10 сек;
   int  St_Time_30; // стартовое время отсчета 30 сек;
   int  St_Time_60; // стартовое время отсчета 60 сек;
   
   St_Time_10 = TimeLocal();
   St_Time_30 = TimeLocal();
   St_Time_60 = TimeLocal();
   
   

//-----------------------------основной цикл программы--------------------------------
   while(end)
     {
       Sleep (50);
       if ((TimeLocal()==(St_Time_10 + int10))&&f_int10) {St_Time_10 = TimeLocal(); Call_int10();}
       if ((TimeLocal()==(St_Time_30 + int30))&&f_int30) {St_Time_30 = TimeLocal(); Call_int30();}
       if ((TimeLocal()==(St_Time_60 + int60))&&f_int60) {St_Time_60 = TimeLocal(); Call_int60();}
       RefreshRates();
      }  
   return(0);
  }
//-----------------------------конец основного цикла----------------------------------
//--------------------процедура вызываемая по прерыванию int10------------------------
  void Call_int10()
        {
          Alert ("Прерывание = 10 сек. Котировка >>>>", Close[0]);
        }
//------------------------------------------------------------------------------------
//--------------------процедура вызываемая по прерыванию int30------------------------
  void Call_int30()
        {
        Alert ("Прерывание === 30 сек.  В резерве.");
        }
//------------------------------------------------------------------------------------
//--------------------процедура вызываемая по прерыванию int60------------------------
  void Call_int60()
 {
        Alert ("Прерывание ===== 60 сек");
        if (orders!=0) return;
        if (OrdersTotal( ) == 0) {
            OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
            int ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0, "from init()",123,Blue);
                              if (ticket<0)
                                       {
                                         Alert("OrderOpen BUY failed, with error #",GetLastError()); return;
                                       }      
        Alert (" Открытие ордера BUY из init() прошло успешно");                 
        orders++;              
                                  }
 }
//------------------------------------------------------------------------------------
//---------------------------эти функции не используются------------------------------
int start()  {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------
 

关于数组的问题。

有三个一维数组。

1. закрытие бара

Close[i]={Close_1,Close_2,...,Close_i};

2. открытие бара

Open[i]={Open_1,Open_2,...,Open_i};

3. его индекс

Index[i]={1, 2, ..., i};

Задача: необходимо организовать двумерный массив mas[i,2], отвечающий условиям

mas[i,0]= |Close_i-Open_i|;

mas[i,1]=i;

Как это правильно сделать?

请帮助我解决这个问题。
 
我有以下问题,我昨天注册了MT4,我开始熟悉并在模拟上做实验。我决定上午继续学习MT4,但图表在5月6日23:57的时候停止了,我没有尝试重启电脑或重新安装程序,该怎么办?
 

Arthibald:
1. У меня такая проблема, вчера зарегистрировался на МТ 4, начал ознакамливатся и эксперементировать на демо. С утра решил продолжить изучать МТ4, но графики остановились на отметке времени 6 мая 23:57, ни помогает ни перезагрузка компа, не переутановка программы,...

2....,该怎么办?


1.世界已经崩溃了,市场在上升--看看本周的日子... :-))所有正常人都有周末 休息...:-)))

2.休息...:-)))

 
Roman.:


1.世界已经崩溃了,市场在上升--看看本周的日子......:-)) 所有正常人都有周末休息...:-)))

2.休息...:-)))

谢谢 :-) 我想我已经脱胎换骨了,但事情就是这样)。