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

 
Yurij Kozhevnikov:

当改变输入参数、图表周期等时,静态变量 不会被重新初始化。

难道没有某种耳朵的技巧来强行重新初始化它们吗?长的路径大致想象,难道没有一个简单而短的路径吗?

在oninit上初始化,不要让它们成为静态的。突然间

 
谢谢你。一个微笑总是比一个消极的微笑好。
 
你好!AMP Global的MT5的服务器已经停机。重新扫描网络并没有帮助。重新登录也无济于事。
附加的文件:
 

干杯!

"无效的ex4文件(7)"和 "全局初始化失败 "是什么意思?

 
Yurij Kozhevnikov:
谢谢你。微笑总是比否定好。
我不记得我说过什么负面的东西,不是故意的,但不管怎样。

MQL不完全是(完全不是)C+。静态类成员 或变量不应出现在函数中。它们造成了很多问题,这些问题就很难被定位。

只有在最顶级的水平,在特定的EA中,通过努力思考。
 
  1. 有一个数值数组--每个条形图有500MA

我们如何计算得出的线束?:

- 改变方向时?

有人建议我潜入Kohonen地图,好吧,我想不出来了!"。

 
Top2n:

你好!!

  1. 有一个数值数组--每个条形图有500MA

我们如何计算得出的线束?:

- 改变方向时?

有人建议我潜入Kohonen地图,但我却搞不清楚。

你的mA是什么?

如果是SMA,你可能可以用学校的算术题来应付。只要记住这个公式:-)

 

干杯!
有一个代码可以将止损点转化为盈亏平衡点(例如,销售)。

if(PositionGetDouble(POSITION_SL)>PositionGetDouble(POSITION_PRICE_OPEN) && ask()<PositionGetDouble(POSITION_PRICE_OPEN)-BreakEven) {
                     //Comment("Modify sell");
                     MqlTradeRequest request;
                     MqlTradeResult  result;
                     ulong  position_ticket  = PositionGetTicket(i);// тикет позиции
                     string position_symbol  = PositionGetString(POSITION_SYMBOL); // символ
                     int    digits           = (int)SymbolInfoInteger(position_symbol,SYMBOL_DIGITS); // количество знаков после запятой

                     double sl               = PositionGetDouble(POSITION_PRICE_OPEN);  // Stop Loss позиции

                     double tp               = PositionGetDouble(POSITION_TP);  // Take Profit позиции
                     ENUM_POSITION_TYPE type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);  // тип позиции
                     ZeroMemory(request);
                     ZeroMemory(result);
                     request.action          = TRADE_ACTION_SLTP; // тип торговой операции
                     request.position        = position_ticket;   // тикет позиции
                     request.symbol          = position_symbol;     // символ
                     request.sl              = NormalizeDouble(sl,digits);                // Stop Loss позиции
                     request.tp              = tp;                // Take Profit позиции
                     request.magic = Magic;

                     //--- вывод информации о модификации
                     PrintFormat("BreakEven POSITION_TYPE_SELL Modify #%I64d %s %s",position_ticket,position_symbol,EnumToString(type));
                     //--- отправка запроса
                     if(!OrderSend(request,result))
                        PrintFormat("BreakEven POSITION_TYPE_SELL OrderSend error %d",GetLastError());  // если отправить запрос не удалось, вывести код ошибки
                     //--- информация об операции
                     PrintFormat("BreakEven POSITION_TYPE_SELL retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
                  }

如果止损定义线在开盘价 位,如下所示。

double sl               = PositionGetDouble(POSITION_PRICE_OPEN);  // Stop Loss позиции

然后就好了,它可以毫无问题地转移停止。

但我如何在这里添加,以便它不是在开盘价,而是在下面。

double sl               = PositionGetDouble(POSITION_PRICE_OPEN)-SymbolInfoDouble(_Symbol,SYMBOL_POINT);  // Stop Loss позиции

或。

double sl               = PositionGetDouble(POSITION_PRICE_OPEN)-1.0;  // Stop Loss позиции (для РТС например и других фондовых штуковин)

然后马上问题就飞出来了。说,他们是错误的停止。

2020.07.29 13:06:24.127 Trades  '723763': failed modify #16003799 sell 1 RTS-9.20 sl: 126900, tp: 124470 -> sl: 126379, tp: 124470 [Invalid stops]

虽然你可以移动手,并在止损点以下。请告知如何解决这个问题?

 

大家好!


我是一个新手--刚刚连接到经纪人 "开业"--在我的iPhone上安装了MT5,无法连接到我的交易账户。我的iPhone需要一个证书。我的经纪人也给我发了证书。我不知道如何在iPhone上安装它。你能告诉我如何安装它吗?提前感谢您!

附加的文件:
 
下午好,如何在OnTimer中设置一个条件?Time[0] TimeCorrect能否被比较?
原因: