错误、漏洞、问题 - 页 2288

 
你好,有没有人有经验。我在mt5上用vtb交易。问题的本质。我以0.5手开出第一笔交易。该交易处于盈利状态,我关闭了它,但账户余额没有变化。没有开放的交易,交易标签 里也没有任何东西。4个小时后,同样的交易(开放时间与关闭时间相同)再次出现,当然,我的存款也被抽走了6%。自动交易总是被关闭。会不会是经纪人的行为?
 
Konstantin Remezov:
你好,有没有人有经验。我在mt5上用vtb交易。问题的本质。我在0.5手时开了第一笔交易。该交易处于盈利状态,我关闭了它,但账户余额没有变化。没有开放的交易,交易标签 里也没有任何东西。4个小时后,同样的交易(开放时间与关闭时间相同)再次出现,当然,我的存款也被抽走了6%。自动交易总是被关闭。这可能是一个经纪人的行为吗?
确认交易已经完成的情况是什么?
 
Vladislav Andruschenko:
确认交易完成的情况是什么?
在历史上是如何确认有交易的。账户余额与交易开始时相同。而事实上,我已经有近5个小时没有做任何交易了,也就是说,在交易标签 中没有活跃的交易,而我5个小时前关闭的那笔交易又出现了,在此之前,我用时间和数量检查了它。顺便说一下,这次交易的唯一变化是,这次交易的获利点正好设置在原始位置的两个点上,尽管没有设置获利和止损。
 

在测试器(和信号)中,你可以看到这些图片

当然,在运行阶段,由于没有对数刻度,什么都看不到。


一些有竞争力的服务/平台有这样简单而清晰的功能。也许在MT5中也出现对数刻度(不仅在测试器中,而且在图表上)会使平台更好/更方便。


你可能注意到,图表上的底部平衡坐标是负的(-8813)。为什么当余额/权益没有变成负数?

 

另一个程序创建的资源是只读的吗?

Документация по MQL5: Программы MQL5 / Ресурсы
Документация по MQL5: Программы MQL5 / Ресурсы
  • www.mql5.com
В данном примере показано как проигрывать звуки из файлов Ok.wav и timeoit.wav, входящих в стандартную поставку терминала. Эти файлы находятся в папке означает папку, из которой запущен клиентский терминал MetaTrader 5.  Программным путем из mql5-программы каталог терминала можно узнать следующим образом: Расположение каталога данных терминала...
 
这是一个错误吗?
class A {};

A* a = NULL;

bool b1 = a && true; // OK
bool b2 = true && a; // '&&' - illegal operation use
 
调试时
Access violation at 0x000000000000007F write to 0x000000000000007F
   crash -->  memory at 0x000000000000007F is not readable
00: 0x000000000000007F
01: 0x000000013FE278BF
 
MT4中的ResourceReadImage 有一个错误,无法读取资源。
#property strict

class RESOURCE
{
public:
  const string Name;

  RESOURCE( const string sName = __FILE__ ) : Name("::" + sName )
  {
  }

  ~RESOURCE( void)
  {
    ::ResourceFree(this.Name);
  }

  virtual bool Set( const uint &Data[], const uint Width = 1, const ENUM_COLOR_FORMAT ColorFormat = COLOR_FORMAT_XRGB_NOALPHA ) const
  {
    return(::ResourceCreate(this.Name, Data, Width, (Width == 0) ? ::ArraySize(Data) : ::ArraySize(Data) / Width, 0, 0, Width, ColorFormat));
  }

  int Get( uint &Data[] ) const
  {
    uint Width;
    uint Height;

    return(::ResourceReadImage(this.Name, Data, Width, Height) ? ::ArraySize(Data) : 0);
  }
};

void OnStart()
{
  RESOURCE Resource;
  
  uint DataIn[] = {0};  
  Resource.Set(DataIn);
   
  uint DataOut[];
  Resource.Get(DataOut);
  
  Print(DataOut[0]); // MT5x64 (build 1881) - 0, MT4 (build 1126) - 4278190100 (случайные значения)
}


ResourceSave写得很正确,但ResourceReadImage是一个大错误。是否有可能修复它?在MT5x32中没有检查...

 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2018.09.17 18:11

调试时
Access violation at 0x000000000000007F write to 0x000000000000007F
   crash -->  memory at 0x000000000000007F is not readable
00: 0x000000000000007F
01: 0x000000013FE278BF

这是一个非常奇怪的崩溃,因为在MT5中与#property strict 有关。回放(在调试模式下运行)。

#property strict // Без этой строки все норм.

#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

void OnStart()
{
  const RESOURCEDATA<MqlTick> Resource("::Test");
  MqlTick Ticks[1];
  
  SymbolInfoTick(_Symbol, Ticks[0]);
  Resource = Ticks;    
}
 

请帮助。我需要将终端内MT4的数据阵列从一个程序转移到另一个程序。我在MT5中使用了这方面的资源,但这种方法不能在MT4中实现,除非这个错误在那里 得到了修复。

当然,我们有很多带DLL的变体,但我们需要不带DLL的。你可以使用文件,而不需要嘲弄SSD。是否有其他可能性在终端内传输数据?全球性的就不行了,因为有很多数据。

看起来是没有办法了。