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

 
下午好,朋友们,我目前在一个EA的帮助下进行交易。
请您告知我是否可以使用这些参数来编写自己的EA?
------------------------------------------------------------------------------
GridA=true
GridB=true
GridC=true
OrdersSideOptimize=true
StopTradeAfterTP_GridA=false
StopTradeAfterTP_GridB=false
StopTradeAfterTP_GridC=false
MaxTrades_GridA=15
MaxTrades_GridB=15
MaxTrades_GridC=15
魔法数字_网格A=7771
魔法数字_网格B=7772
魔法数字_网格C=7773
MaxLots=100.0
AutoMM=3.0
T6="地段设置"
基础订单级别=1
批量指数=1.33
T7="TakeProfit设置"。
获利=125.0
滑移率=3.0
T10="步骤设置"
Step_GridA=170.0
Step_GridB=170.0
Step_GridC=200.0
距离指数=1.18
BaseDistanceOrder=10

向您致以敬意:高贵的萨维奇
 

下午好。你能告诉我一些事情吗?


编译时,出现了一个错误。

if(flag_Cl_Buy = "on" && Ask>=BB)

'&&' - 非法操作使用

这个字符是一个逻辑上的AND。'&&'的翻译是非法操作使用。)))

怎么了?))

标准分支。使得如果条件1(flag_Cl_Buy = "on")中的内容,并且价格值高于指定的内容。这和有什么问题吗?


 
Gilmor:

下午好。你能告诉我一些事情吗?


编译时,出现了一个错误。

'&&' - 非法操作使用

这个字符是一个逻辑上的AND。'&&'的翻译是非法操作使用。)))

怎么了?))

标准分支。使得如果条件1(flag_Cl_Buy = "on")中的内容,并且价格值高于指定的内容。这和有什么问题吗?


==

所以比较的结果是"==",你漏了一个符号。

 
Gilmor:

下午好。你能告诉我一些事情吗?


编译时,出现了一个错误。

'&&' - 非法操作使用

这个字符是一个逻辑上的AND。'&&'的翻译是非法操作使用。)))

怎么了?))

标准分支。使得如果条件1(flag_Cl_Buy = "on")中的内容,并且价格值高于指定的内容。这和有什么问题吗?


你不是在比较,你是在分配

if(flag_Cl_Buy = "on" && Ask>=BB)

这种比较 看起来像这样。

if(flag_Cl_Buy == "on" && Ask>=BB)
 
dodon_:
下午好,亲爱的朋友们,我目前在我的专家顾问的帮助下进行交易。
你能告诉我,我是否可以根据这些参数编写自己的EA?

根据我所看到的一点答案,你可以写任何东西,甚至好的人也会告诉你问题和错误在哪里。但是,没有人会直接给你写信,带着这样模糊的问题,大多数时候他们会把你送到证券交易所。

https://www.mql5.com/ru/job

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Добрый день. Нужно написать советника на основе мартингейла работающего в обе стороны с усреднениями на ТФ м1/м5/м15/Н1/Н4/D1 , с тейк профитом но без стоп лоса, для центового счета, с функцией привязки советника на определенные счета. Требуются данные входные параметры для управления советником: Стратегия GridA: включить/выключить стратегию...
 
Vladimir Karputov:

你不是在比较,你是在分配

这种比较 看起来像这样。

非常感谢你。=)

 

我提前表示歉意。还有几个问题。

请告知我哪里不明白。MQL4


void OnTick()
  {
//---
............
тело самого советника
.........
return;
  }

有哪些错误?它产生了。

'OnTick' - 只允许在全局、命名空间或类的范围内进行函数声明。

'OnTick' - 函数已经定义并且有主体

参见之前的函数 "OnTick "的声明

'}'- 以下是程序结束时出现的错误

由于它突出了括号,我仔细检查了一下。它是 "OnTick "函数的结束括号。

在这个函数之前,只有变量声明 和int OnInit(), void OnDeinit(const int reason)

-----------------------------

我从这个论坛上偷了一个简单的解决方案来关闭所有的订单。

for(z=OrdersTotal()-1; z>=0; z--)    // закрытие всех ордеров.
        {
         if(OrderSelect(z,SELECT_BY_POS)==true && OrderSymbol() == Symbol())
           {
            OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Red);
           }
        }

它给了我一个黄色的图标,并要求我仔细检查返回的值。我不需要检查返回值。它所暗示的是什么?

------------------------------

开关操作员

漂亮的开关东西。

switch(flag_1)

正如名字所说的旗帜。在计算过程中,它根据解决方案切换到1个标志值。标记。标记,即这个标志的值是3。这些是 "零"、"买"、"卖"。

string flag_1 = "zero";

void OnTick()
  {
switch(flag_1)
     {

      case "zero":
  .............
...............
break;
     case "BUY":
 .............
...............
 break;
    case "SELL":
 .............
...............
 break;
return;
}
}

而且它并不喜欢一切。无论是flag_1 本身还是它的值,都不是。我们如何才能解决这个问题?我不希望被强迫接受数字。从视觉上看,如果只有数字x=1、2或3,那就更难理解了。:( 文本标签是否不允许?

-------------------------------

// Удалить старую отложку
            OrderDelete(OrderBufer_B[i].ticket,clrRed);
            if(OrderSelect(OrderBufer_B[i].ticket,SELECT_BY_TICKET,MODE_TRADES) = true)
              {
               OrderDelete(OrderBufer_B[i].ticket,clrRed);
              }  // повторить

误区

应检查'OrderDelete'的返回值

'OrderSelect' - 需要l-value

'=' - 需要的L值

这个过程到底有没有意义?是否有必要将我所有与订单有关的行动放入一个循环,直到它们完成? 或者服务器,即使它现在很忙,它仍然会处理你的请求吗?

我明白,如果我们谈论的是现在在市场上买入/卖出的订单,那么在新闻发布时,服务器将是免费的,价格可以已经走得很远,然后订单将不会被执行。




 
Gilmor:

我提前表示歉意。还有几个问题。

请告知我哪里不明白。MQL4


有哪些错误?它产生了。

'OnTick' - 只允许在全局、命名空间或类的范围内进行函数声明。

'OnTick' - 函数已经定义并且有主体

参见之前的函数 "OnTick "的声明

'}'- 以下是程序结束时出现的错误

由于它突出了括号,我仔细检查了一下。它是 "OnTick "函数的结束括号。

在这个函数之前,只有变量声明 和int OnInit(), void OnDeinit(const int reason)

-----------------------------

我从这个论坛上偷了一个简单的解决方案来关闭所有的订单。

它给了我一个黄色的图标,并要求我仔细检查返回的值。我不需要检查返回值。它所暗示的是什么?

------------------------------

开关操作员

漂亮的开关东西。

正如名字所说的旗帜。在计算过程中,它根据解决方案切换到1个标志值。标记。标记,即这个标志的值是3。这些是 "零"、"买"、"卖"。

而且它并不喜欢一切。无论是flag_1 本身还是它的值,都不是。我们如何才能解决这个问题?我不希望被强迫接受数字。从视觉上看,如果只有数字x=1、2或3,那就更难理解了。:( 文本标签是否不允许?

-------------------------------

误区

应检查'OrderDelete'的返回值

'OrderSelect' - 需要l-value

'=' - 需要的L值

这个过程到底有没有意义?是否有必要将我所有与订单有关的行动放入一个循环,直到它们完成?或者服务器,即使它现在很忙,它仍然会处理你的请求吗?

我明白,如果我们现在谈论的是买入/卖出市场的订单,那么在有消息的时候,当服务器有空的时候,价格可能已经走得很远了,那么这个请求就不会被执行。




应该检查OrderSend, OrderDelete, OrderClose, OrderModify的结果。这些只是提升到警告级别的礼节性规则。

而 "lvalue "错误是你最喜欢的比较和赋值的混合。

PS/好在你没有学习MT编程。MT是一个苛刻的应用。

 
Gilmor:

我提前表示歉意。还有几个问题。

请告知我哪里不明白。MQL4


有哪些错误?它产生了。

'OnTick' - 只允许在全局、命名空间或类的范围内进行函数声明。

'OnTick' - 函数已经定义并且有主体

参见之前的函数 "OnTick "的声明

'}'- 以下是程序结束时出现的错误

由于它突出了括号,我仔细检查了一下。它是 "OnTick "函数的结束括号。

在这个函数之前,只有变量声明 和int OnInit(), void OnDeinit(const int reason)

-----------------------------

我从这个论坛上偷了一个简单的解决方案来关闭所有的订单。

它给了我一个黄色的图标,并要求我仔细检查返回的值。我不需要检查返回值。它所暗示的是什么?

------------------------------

开关操作员

漂亮的开关东西。

正如名字所说的旗帜。在计算过程中,它根据解决方案切换到1个标志值。标记。标记,即这个标志的值是3。这些是 "零"、"买"、"卖"。

而且它并不喜欢一切。无论是flag_1 本身还是它的值,都不是。我们如何才能解决这个问题?我不希望被强迫接受数字。从视觉上看,如果只有数字x=1、2或3,那就更难理解了。:( 文本标签是否不允许?

-------------------------------

误区

应检查'OrderDelete'的返回值

'OrderSelect' - 需要l-value

'=' - 需要的L值

这个过程到底有没有意义?是否有必要将我所有与订单有关的行动放入一个循环,直到它们完成?或者服务器,即使它现在很忙,它仍然会处理你的请求吗?

如果我们谈论的是现在买入/卖出的订单,那么在新闻发布时,当服务器将是免费的,价格可以走得很远,订单将不会被执行。




你有2个OnTick函数


开关运算符的表达式必须是整数类型。

 
Artyom Trishkin:

是的,创建一个单独的主题。只要尽量选择正确的论坛版块来创建主题。

是的,好的。MQL4和MetaTrader 4 " 可以吗? 还是在 "指标 "中更好?