初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1434

 
jeremy10p100 # :
您好,感谢您的回复。 我已经能够制作一个符合我的期望的脚本,但遗憾的是,仍有两个错误我无法理解或纠正。 您知道该联系谁来寻求一点帮助吗? 这只是两行代码,在编译后注册为错误......

您可以创建一份自由职业工作,然后从申请工作的开发人员中进行选择

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

Applications de trading pour MetaTrader 5 à commander
Applications de trading pour MetaTrader 5 à commander
  • 2023.01.08
  • www.mql5.com
Le plus grand service de freelance avec des développeurs d'applications MQL5
 
#include <JAson.mqh>
CJAVal jv;

jv["type"] = "BTCUSD";
jv["title"] = "test";

int result;
char res_data[],post[];
ArrayResize(post,StringToCharArray(jv.Serialize(),post,0,WHOLE_ARRAY)-1);
string headers="Content-Type: application/json\r\nAccept: text/plain";
result=WebRequest("POST",url,headers,3000,post,res_data,res_headers);

在尝试通过 WebRequest 发送 json 时,服务器返回:"\u0022BTCUSD\u0022 不是 有效的反规范化捆绑类型"。


我尝试在头文件和
StringToCharArray 中指定所有编码变量 ,但都无济于事。

在 python 中一切正常:
response = requests.post(url, data=json.dumps(data), headers=headers)
即服务器一切正常。

如何解决问题?

 

请允许我换一种方式提问。是否有可能在OnInit 模块中给优化器一个命令,让它在特定条件下跳过测试/优化变体。

input group "Входные настройки Стохастик"
input bool Stoch = false; // Стохастик включен/выключен
input int in_StochK = 14; // период основной линии K
input int in_StochD = 3; // период первичного сглаживания D
input int in_StochSlow = 3; // период окончательного сглаживания

int OnInit() {
if ((Stoch = false) && ((StochK != 0) || (StochK != 0) || (StochSlow != 0)))
   {
   // Некая команда, которая говорит, что такой вариант даже не стоит пробовать оптимизировать  
   }
}

我曾尝试这样做,但却导致了不正确的优化变体。

if ((Stoch = false) && ((StochK != 0) || (StochK != 0) || (StochSlow != 0))) 
   {
   
Print("Такой вариант тестирования не имеет смысла");
   return(INIT_FAILED);
   }

我的目标是在优化时启用 4 个随机参数(Stoch、in_StochK、int in_StochD、int in_StochSlow)的枚举变量。

  • 启用随机参数(Stoch = true)后,优化器将枚举变量 in_StochK、in_StochD 和 in_StochSlow。在这一部分,一切运行正常。
  • 当关闭随机模式(Stoch = false)时,优化器仍在搜索变量 in_StochK、in_StochD、in_StochSlow。我需要在代码中设置某种限制,以便在 Stoch = false 时不搜索这些变量。
 

你好@taramortom

如果您把

return(INIT_FAILED)

改为

return(INIT_PARAMETERS_INCORRECT)
 
Yuriy Bykov #:

你好,@taramortom

如果你把

改为

我试过了。没用。使用该命令后,优化器仍然无法正常工作。
 

也许优化器无法正常工作的原因就在于代码中的这种不准确性:

if ((Stoch = false) && ((StochK != 0) || (StochK != 0) || (StochSlow != 0)))
 
Yuriy Bykov #:

也许优化器无法正常工作的原因就在于代码中的这种不准确性:


不是这个原因。我编写代码是为了举例说明工作逻辑。完整版的代码过于庞大,有许多不同的振荡器。在优化时,我希望优化器尝试不同的组合(开启一个振荡器、开启两个振荡器、开启三个振荡器等)。

- 使用该限制器时,优化器只需通过少量程序就能快速完成工作,尽管需要通过大量程序。

- 如果不使用这一限制,优化器会运行得更好,但会产生大量空变体(如上例--当随机参数关闭时,优化器仍在搜索参数)。如果不使用这一限制,优化器的工作会更好,但会产生大量空变量(如上例--当随机参数关闭时,优化器仍在搜索参数)。

 
您使用的是遗传优化还是完全优化?
我也用这种方法排除了明显不必要的参数组合,并没有发现优化器的性能不正确。相反,优化器完全按照预期运行。
您可以尝试将漏掉的参数组合保存到数据库或通用文件中,以检查有多少和哪些是真正漏掉的,并了解原因。
 

你好!我正在编写一个基于 MA 的指标 - ExtJawsHandle=iMA(NULL,0,Period,0,Method,AppliedPrice);

我怎样才能以编程方式获得 MA 的水平,如下图所示。

类型的结构

IndicatorSetInteger(INDICATOR_LEVELS,1);

IndicatorSetDouble(INDICATOR_LEVELVALUE,0,10);

类型不起作用。


 
Tango_X IndicatorSetInteger(INDICATOR_LEVELS,1);

IndicatorSetDouble(INDICATOR_LEVELVALUE,0,10);

不起作用。


没有选项?)