在设置中选择一个符号 - 页 3

 
Alexey Viktorov:

填充一个 字符数组,并对该数组进行操作。

有一个使用上述代码的免费EA ***


ps; drubashka,你应该删除链接。在我市场上的产品中,只有两个是付费的。一个是2017年的,已经租了4次,另一个是2014年的,10英镑,一次也没买。所以这里没有广告可言。

我不知道我为什么要加入这个话题--现在我在挣扎,而且没有用。 我仍然在寻找一种方法来使它发挥作用。

我不知道,也许这个会有用。

struct translate{
   string EURUSD;
   string GBPUSD;
   string USDCHF;
   string USDJPY;
   string USDCAD;
   string AUDUSD;
   string AUDNZD;
   string AUDCAD;
   string AUDCHF;
   string AUDJPY;
   string CHFJPY;
   string EURGBP;
   string EURAUD;
   string EURCHF;
   string EURJPY;
   string EURNZD;
   string EURCAD;
   string GBPCHF;
   string GBPJPY;
   string CADCHF;
};
translate langs;
 
Aleksandr Klapatyuk:

谢谢你的回答,我不知道我为什么要来找这个话题--现在我在挣扎,无法让它工作。

我不知道,也许这个会有用。

你在浪费你的时间。你将无法以编程方式填充该结构或枚举。而且该阵列只能用于多币种的EA。多币种EA不是指可以放在任何符号上的EA,而是指可以在其中一个图表上交易多个符号的EA。在该链接中,你可以看到这样一个多货币EA的例子。货币的选择可以设置为三个选项之一。

  1. 只有专家顾问所交易的货币对。
  2. 一个以逗号分隔的货币列表,将被交易的货币
  3. 所有在启动专家顾问时打开的货币对都被交易。
但这些选项是通过枚举来选择的
 
Alexey Viktorov:

你不应该这样做。结构和枚举都不能以编程方式填入。而且该阵列只能用于多币种的EA。多币种EA不是指可以设置为任何符号的EA,而是指在其中一个图表上,可以交易多个符号的EA。在该链接中,你可以看到这样一个多货币EA的例子。货币的选择可以设置为三个选项之一。

  1. 只有专家顾问所交易的货币对。
  2. 以逗号分隔的货币列表,将进行交易的货币
  3. 在启动专家顾问时,所有开放的货币对都被交易。
但这些选项是通过枚举来选择的

谢谢!我开始做我负担不起的事情,我宁愿学一些更容易的东西。

我以前也这样做过--都成功了。

string         Symb[3]={"EURUSD","GBPUSD","EURJPY"};
double         prPos[3];
------------------------------------------------------------
   for(int i=0;i<3; i++)
      if(PositionSelect(Symb[i]))
        {
         prPos[i]=(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n;
        }
      else
        {
         prPos[i]=0;
        }
 
Aleksandr Klapatyuk:

谢谢!我在做我不能做的事,我宁愿学些更容易的东西。

我就是这样做的--这一切都成功了。

这是我描述的第二个选项。从准备好的列表中以逗号分隔的行进行交易货币。但我的版本有点不同。该清单看起来像这样

"EURUSD,GBPUSD,EURJPY"

则从这个列表中填充数组,并对数组进行处理。此外,货币后缀被定义,并在填充阵列 时自动加入。这是为了避免在不同的账户中重新输入清单。

 
Alexey Viktorov:

我们谈论的不是同一件事。

simv

syTotal =SymbolsTotal(true)似乎总是1,因为如果为真,SymbolTotal()将不显示Market Watch中的符号数,而是显示Market Watch中所选择的符号数,这就产生了在选择下一个项目之前如何在列表中步入的问题。

 
andre:


syTotal = SymbolsTotal(true)似乎总是1,因为如果是true,SymbolTotal()给出的不是Market Watch中的符号数,而是其中选定的符号数,这就提出了在选择下一个项目之前如何在列表中步步深入的问题。

在测试器中,是的,总是有一个符号。这就是为什么在EA描述中有一个警告,在测试器中,你只能在一个符号或一个符号列表上进行测试。

 
不幸的是,为了使它变得漂亮,你必须自己绘制输入面板,实现下拉列表,总的来说,没有什么根本性的复杂,但却很复杂。如果宗教和/或客户允许,那么通过windowsform,在Sharp上实现它就更容易。至于在标准面板上做这件事的技术可能性,我认为原则上没有任何问题,这更多是创作者的愿望问题。有可能实现提供值的选择,对于编译器,我们应该引入额外的关键字,写成:__declsymb input string value=__default(或__pos1),一般来说,编译器/终端的开发者必须开发它。
 
Vladimir Simakov:
不幸的是,为了使它变得漂亮,你必须自己绘制输入面板,实现下拉列表,总的来说,没有什么根本性的复杂,但却很复杂。如果宗教和/或客户允许,那么通过windowsform,在Sharp上实现它就更容易。至于在标准面板上做的技术可能性,我认为原则上没有任何问题,这更多的是创作者的愿望问题。有可能实现提供值的选择,对于编译器,我们应该引入额外的关键字,写成:__declsymb input string value=__default(或__pos1),一般来说,编译器/终端的开发者必须开发它。

嗯,是的。如果你使用dll,你可以在终端上玩坦克。但问题的提出没有考虑到dll的能力。

 
Alexey Viktorov:

嗯,是的。如果你使用dll,你也可以在终端上玩坦克。但问题的提出没有考虑到dll的能力

然后要么向创作者祈祷,要么自己编写输入面板。在机器人启动时(有指标的情况下更复杂),在OnTimer()中开始有自写的输入面板,输入数据,然后机器人就开始工作了。它是这样的。
 
Vladimir Simakov:
然后要么向创作者祈祷,要么自己编写输入板。当机器人启动时(有指标的情况下更复杂),在OnTimer()中启动自写的输入面板,输入数据,然后机器人开始工作。它是这样的。

首先你要问,"谁需要它?"

我想试试,但没有成功。 我告诉专家顾问,不能用MQL做。但没有人问他如何使用其他手段来做到这一点。这些胡言乱语有什么意义?这里有足够的人可以在终端图上画卡通。