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

 
Lol Kek:

对于输入参数界面中的布尔类型的输入变量,是否可以使其双击而不是在真/假之间切换来显示其文本?谢谢

enum  ENUM_ONOFF
{
On  = 1,  // On   тут любой текст
Off = 0   // Off  тут любой текст
};

input ENUM_ONOFF iValue = On; // Параметр
 
Vladimir Pastushak:

谢谢你,但这有点不同。我知道这种方法--在这种情况下,我将有一个下拉选择器,当你选择它时,选择值。

但我需要它作为输入 bool yesOrNo = true; - 当输入参数时,只要点击两次,它的值就会变成相反的,反之亦然。仅仅是打印你的文本而不是真和假

 
Lol Kek:

谢谢,但这有点不同。我知道这种方式--在这种情况下,我将有一个下拉选择器,当我要选择它时,选择值。

我需要它像输入bool yesOrNo = true那样工作;--当输入参数时,只要点击两次,它的值就会变成相反的,反之亦然。仅仅是打印你的文本而不是真和假

bool为真,folse为1,folse为0,没有区别。

 

你好。我是一个绿色的初学者。一些关于基础知识的提示。

1-为什么我在mql4中编程? 它给我发送了一个带有int OnInit()void OnTick() 函数的mql5模板? 它们不会产生错误,但它们是否有效。我开始感到困惑了。

2 - 我正在写一个专家顾问。void OnTick() - 我看到它 取代了int start()函数int OnInit()- 而不是int init()

2.1 - 我规定了要在int OnInit() 中使用的变量,它开始抱怨。我立即分配了一个变量类型,因为它出现了。诅咒停止了。为什么?

2.2 - 很容易开出待定的买入 和卖出订单。为什么它不打开呢?虽然我没有看到任何错误。

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,Ask+50,3,0,0,"bs1",1,0,clrGreen);

int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,Bid+50,3,0,0,"ss1",-1,0,clrRed);

3 - 如何将一个计数器拧到变量--订单号。(BS1, SS1)--直接告诉我们是哪个顺序的变量。因此,当EA继续搜索必要的订单时,它将同样容易检测到它。在OP_BUYSTOP将其值 改为BUY 后,其标识符是否保持不变?我是否能够利用BS1中的数据找到它?

4 - 什么是最简单的方法来检查任何挂单 是否已经打开,特别是如果在开盘参数中指定了3个点的可能滑移。也就是说,它扫描的是一个价格范围,而不仅仅是一个价格,并可能在高于/低于默认价格1-3个点开盘....。

5.请告知在哪里可以得到关于MQL4的教科书或课程。我想提高我的技能。我想知道。 这可能是一个用2行描述的策略,但当我打开专家顾问时,我看到的是100500行的代码。为什么...我不理解这些代码 :(


我被各种问题淹没了 :))请帮助我理解

 
<br/ translate="no">。


我被各种问题淹没了 ))))请帮助我理解

2.2 : 要求+50是有点夸张 :-)50就我理解的点的想法......我的意思是50*_点......并将其正常化。也就是说,你应该写NormalizeDouble(Ask+50*_Point,_Digits)而不是Ask+50。

 
@Maxim Kuznetsov- 谢谢你)。
 

阅读,了解每个参数的含义,设置.....

我的待售产品没有打开。它甚至没有给出错误,GetLastError()=0! 它打开买入是应该的,但忽略了卖出。它让我发笑,它想要什么?))))

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
    if (GetLastError()==1);
    {
    Alert (GetLastError());
    }

善良的人们,我在哪里可以得到必要的知识?))

 
Gilmor:

阅读,了解每个参数的含义,设置.....

我的待定卖盘没有打开。它甚至没有给出错误,GetLastError()=0! 它打开买入是应该的,但忽略了卖出。它让我发笑--它想要什么?))))

善良的人们,我在哪里可以得到必要的知识?))

在终端有一个有趣的标签,叫做 "专家"。这里写的是专家的错误。看一看。然后在你的代码中。

 
int start()                                  // Спец. функция start()
  {                                          
  double prise;
  double lots = 0.01;  
  if (OrdersTotal()<1)
  {
  prise = MarketInfo(Symbol(), MODE_ASK);
  // int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
   /* if (GetLastError()==1);
    {
    Alert (GetLastError());
    }
    */
  }
 
   return;                                   // Выход из start()
  }

Artyom Trishkin:

在终端中有一个有趣的标签--"专家"。它包含专家顾问的错误。你可以通过它来查看。然后在你的代码中。

正如你所看到的,这个标签也显示了所谓的完美。加载了它,启动了它。它没有任何错误。:(

所以,谢谢你!"。我不知道使用这个标签。

 

下午好。

我已经折磨了自己一个星期,试图寻找信息。帮忙写写代码))

目的:找出一个蜡烛的开盘和收盘点数的差异。

把它加起来并显示在屏幕上,为100条。

最后,我想在屏幕上看到总金额。

空白的OnTick()。

{

double minprice =99999 , mp,cl,

maxprice =-99999。

double Index = 0;

double Index1 = 0;

for(int i=100; i>0; i--)

{

mp = iLow(Symbol(),PERIOD_CURRENT, i)。

cl = iClose(Symbol(), PERIOD_CURRENT, i);

如果( mp < minprice)

minprice = mp - cl;

指数=最小价格+mp。

}

谢谢你。

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
原因: