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

 

如果RVI指标的买入/卖出条件中加入一个值,例如:当两条线相互交叉时,它会打开一个买入/卖出订单,但我希望它不仅仅是一个交叉,而是如果交叉超过0值?

MM和MS是RVI指标线

  if (MM > MS && MoM < MS && MoM < MM)
   {
    OrderSend(_Symbol, OP_BUY, Lot, Ask, 3, Ask-SL*Point, Ask+TP*Point, "", Magic, 0, Red);
   }
  if (MM < MS && MoM > MS && MoM > MM)
   {
    OrderSend(_Symbol, OP_SELL, Lot, Bid, 3, Bid+SL*Point, Bid-TP*Point, "", Magic, 0, Red);
   }


 

你好!

你能告诉我如何使用obj标签来显示一个超过64个字符的字符串吗?

 
Игорь:

你好!

你能告诉我如何使用obj标签来显示一个超过64个字符的字符串吗?

两个obj标签并排在一起。左边的对准右边的边缘,右边的对准左边的边缘。

 
novichok2018:

你能解释一下你的这行代码吗:OrderInfo arrstBuyOrderInfo[MAX_ORDERS_CNT], arrstSellOrderInfo[MAX_ORDERS_CNT]; 为什么OrderInfo 没有括号也没有类型?

OrderInfo是一个数据类型。就像int、double等。在这种情况下,OrderInfo是一个结构。我在我的帖子平仓的 功能中?也许用数组平仓的功能应该看起来有些不同?这对我来说有点复杂。谢谢你。

到目前为止,我们只考虑了第一项任务--收集有关工作订单的信息。交易信号的生成和交易行为的执行分别是任务2和任务3。我们还没有到他们那里去。

收集信息的想法是不需要在每次 "打喷嚏 "时都要再次浏览整个订单清单。在一个正确编写的EA中,这个动作在每个迭代中只执行一次。进一步说,我们只用创建的数据工作。

Вопросы от начинающих MQL4 MT4 MetaTrader 4
Вопросы от начинающих MQL4 MT4 MetaTrader 4
  • 2018.02.13
  • www.mql5.com
Если у Вас вопросы по MQL4, MT4, MetaTrader 4, пожалуйста пишите в этой теме. Особенно когда вопросы касаются торговых функций...
 
Aleksey Rodionov:

如果RVI指标的买入/卖出条件中加入一个值,例如:当两条线相互交叉时,它会打开一个买入/卖出订单,但我希望它不仅仅是一个交叉,而是如果交叉超过0值?

MM和MS是RVI指标线


两条线的值都应与零比较。不是吗?

而且也不清楚MoM是什么。

 

在MQL5中有这样一行,MQL4编译器抱怨它,如何才能改写它?

//--- set new color
   m_pixels[y*m_width+x]=(r<<16|g<<8|b<<0|255<<24) &0xffffffff;

//check operator precedence for possible error; use parentheses to clarify precedence   Canvas.mqh
 
Ihor Herasko:

OrderInfo是一个数据类型。如int、double等。在这种情况下,OrderInfo是一个结构。我在我的帖子https://www.mql5.com/ru/forum/160587/page121#comment_6556328,举了一个例子说明它的声明。

我对你的例子理解正确。#define指令将在满足MAX_ORDERS_CNT的地方替换数字500 ?而且为什么要给一个数字分配一个类型?

为什么我们不能直接指定extern int cnt=500?然后会有OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt]; ?


另外:在你的帖子的第122页,我不清楚什么是&arrstOrderInfo[],&nOrdersCnt.n?如果我的问题看起来很傻,请原谅--因为是这样,我正试图自己多搞清楚,尽管我的经历很糟糕。

 

下午好

请帮助我升级我的指标

我需要添加2个缓冲区,"本地 "指标在你确定一个缺口时画一个箭头(向上或向下),并在缓冲区6或7给出一个信号。

我希望有一个缓冲区8和9,其中的间隙信号+1(向上)或-1(向下)0在没有

我试着自己做,但没有任何效果,我没有编程的技能

附加的文件:
 
novichok2018:

我对你的例子理解正确吗?在遇到MAX_ORDERS_CNT的地方,#define指令将替代数字500?而且为什么要给一个数字分配一个类型?

是的,并注意它将在编译阶段被替换,而不是在程序执行 期间。

为什么你不能直接指定extern int cnt=500?然后会有OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt]; ?

不是,因为int cnt是一个变量的声明。而一个变量可以在程序执行过程中改变其值。而静态数组的内存在程序执行过程中是不分配的。在编译阶段就应该知道内存大小。为了在程序执行过程中改变数组的大小,你需要使用一个动态数组。好吧,这是在以后进行的,当你习惯于静态数组的时候。

另外:在你的帖子的第122页,我不清楚什么是&arrstOrderInfo[],&nOrdersCnt.n?如果我的问题看起来很傻,请原谅--我自己也在努力理解它们,但我不是很擅长。

为了避免混淆,我将把答案简化一下。(&)号表示函数参数在运行时可以改变其值,并将以不同的值返回到函数被调用的地方。在这个案例中,SaveOrder函数可以改变g_arrstBuyOrderInfo和g_arrstSellOrderInfo数组的内容,以及g_nBuyOrdersCnt和g_nSellOrdersCnt变量。

 

你好!

你能告诉我如何在不使用模板 的情况下在mt4中重新绘制条形图吗!?

或者如何应用一个颜色方案!?