[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 201

 

谁能告诉我如何从打开的图表中找到当前(高亮)的图表窗口符号,而不是附带脚本/顾问的那个,而是当前在终端活动的那个(他们也说在焦点中)。

 
harbor:

谁能告诉我如何从打开的图表中找到当前(高亮)的图表窗口符号,而不是附带脚本/顾问的那个,而是当前在终端活动的那个(他们也说在焦点中)。

获取图表窗口的Z序列顶部的窗口描述符。然后根据它得到头,并对其进行解析。
 
Zhunko:
获取图表窗口的Z序列顶部的窗口描述符。然后通过它得到头,并对它进行解析。


那么,mql4似乎只有一个带有WindowHandle 的函数

但我正在制作一个dll,是否有可能通过winapi来做这件事? 有一个叫GetWindowText的 函数,它的句柄

我怎样才能得到这个手柄呢?

 
harbor:


那么,mql4似乎只有一个带有WindowHandle 的函数

但我正在制作一个dll,是否有可能通过winapi来做这件事? 有一个叫GetWindowText的 函数,它的句柄

我怎样才能得到这个手柄呢?

那么,在DLL中,你需要获得Z序列顶部的窗口的句柄。有一个MDI客户端。它是图形窗口的母体。这就是获得该描述词的地方。
 
请告知,如果你用相同的手数(如果不相等)交易欧元兑美元和美元兑日元,会发生什么?也许有人经历过这种情况(我需要一个计算的变体)。
 
YOUNGA:
请告知,如果你用相同的手数(如果不相等)交易欧元兑美元和美元兑日元,会发生什么?也许有人经历过这种情况(我需要一个计算的变体)。
计算什么?
 
YOUNGA:
请告知,如果你在不同的方向上以相同的手数交易欧元兑美元和美元兑日元(或如果不相等),会发生什么。也许有人已经试过了(我需要一个计算的变体)

这里的欧元和美元是基础货币,手数以其计算。也就是说,第一对1手是100.000欧元,第二对是100.000美元,两种情况下都是以日元买入/卖出。
 


让我解释一下,如果你在欧元兑美元和美元兑日元对上各开一手,那么欧元兑美元的一手应该是欧元兑美元价格的1点变化,而欧元兑日元/美元兑日元的合成物必须发生变化,因为它们是相关的。



 

试图对以下想法进行编码。

如果时间是01.00.00. 或03. 00.00.

向上打开一个订单。

在其他时候,要开出 一个下跌单。

问题 程序在01:00:00编译,打开了一个买入订单,但没有读取|| 或后面的内容。

if(Hour( )==01 && Minute( )==00 && Seconds( )==00||Hour( )==03 && Minute( )==00 && Seconds( ) ==00 )

也就是说 ,在03.00.00时,测试者开的不是买入头寸,而是卖出 头寸。

所有其他交易都是按照代码开启的。

  if(Hour( )==01 && Minute( )==00 && Seconds()==00||Hour( )==03 && Minute( )==00 && Seconds()==00 )
 
    
   {  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
  }
  else
  {
  SL=NormalizeDouble (Price+3000*Point, Digits);         
  TP=NormalizeDouble (Price-100*Point, Digits);
  Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,SL,TP );
 }
 }
 }

Делал два заголовка if ...... вообще не открывает сделки

 if(Hour( )==01 && Minute( )==00 && Seconds()==00 )
  if(Hour( )==03 && Minute( )==00 && Seconds()==00)
    
   {  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
  }
  else
  {
  SL=NormalizeDouble (Price+3000*Point, Digits);         
  TP=NormalizeDouble (Price-100*Point, Digits);
  Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,SL,TP );
 }
 }
 }
Подскажите - как сделать так что бы в 03.00.00. открывалась сделка на покупку? Спасибо
 
solnce600:

问题 程序编译后,在01.00.00打开了一个买入交易, 但没有读取|| 和它后面的字符。

if(Hour( )==01 && Minute( )==00 && Seconds( )==00||Hour( )==03 && Minute( )==00 && Seconds( ) ==00 )

也就是说 ,在03.00.00时,测试者开的不是买入头寸,而是卖出 头寸。

所有其他交易都是按照代码开启的。


首先,要习惯于把支架放在你需要的地方。像这样。

if((Hour( )==01 && Minute( )==00 && Seconds()==00) || (Hour( )==03 && Minute( )==00 && Seconds()==00))
事实上,你应该有一个时间范围,而不是一个固定值。你的逻辑一点也不正确。 不是1小时或3小时,而是从1小时到3小时!