错误、漏洞、问题 - 页 873

 
mario065:

你好,雷舍托夫。

对你来说是 "这到底是怎么回事?",对我来说是当我不得不调用修改函数时的情况。

如果你看了这段代码,你就不会写了。

该代码确实如此。

  double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
  double SL   = NormalizeDouble(PositionGetDouble(POSITION_SL),4);
  double TP   = NormalizeDouble(PositionGetDouble(POSITION_TP),4);

如果它在那里,有什么好处呢?你在哪个位置上计算这个狗屎?试着用Print()或调试器看看在if()之前,变量SL、TP和Open的值是多少,日志中的开仓值 是多少。
 

谢谢你,雷谢托夫。

完成了。

  double buy_trail = 0;
  double sel_trail = 0;
  double SL,TP,Open;
  if(PositionSelect(Symbol())){
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
      Open = PositionGetDouble(POSITION_PRICE_OPEN);
      SL   = PositionGetDouble(POSITION_SL);
      TP   = PositionGetDouble(POSITION_TP);
      Bid  = SymbolInfoDouble(Symbol(),SYMBOL_BID);
      buy_trail = NormalizeDouble(Bid - Open,Digits());
      if(buy_trail > MStop)
       {
        if(NormalizeDouble((Bid - MStop),Digits()) >= Open && Open > SL)
          {
           ModifyPosition(Symbol(),Open,TP);
          }
          if(NormalizeDouble((Bid - MStop),Digits()) > SL && Open <= SL)
           {
            ModifyPosition(Symbol(),NormalizeDouble((SL + 0.001),Digits()),TP);
           }
        }
      }
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
      {
      Open = PositionGetDouble(POSITION_PRICE_OPEN);
      SL   = PositionGetDouble(POSITION_SL);
      TP   = PositionGetDouble(POSITION_TP);
      Ask  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
      sel_trail = NormalizeDouble(Open - Ask,Digits());
      if(sel_trail > MStop)
       { 
        if(NormalizeDouble((Ask + MStop),Digits()) <= Open && Open < SL)
          {
           ModifyPosition(Symbol(),Open,TP);
          }
          if(NormalizeDouble((Ask + MStop),Digits()) < SL && Open >= SL)
           {
            ModifyPosition(Symbol(),NormalizeDouble((SL - 0.001),Digits()),TP);
           }
        }
      }
     }

修改功能本身。

//+------------------------------------------------------------------+
//| Modify position.                                                 |
//+------------------------------------------------------------------+
bool ModifyPosition(const string symbol,double StopLoss,double Takeprofit){
//---- обявяване на структурата и резултата на търговското искане
   MqlTradeRequest request={0};
   MqlTradeResult result={0};
//---- структурна инициализация на  търговското искане MqlTradeRequest за модифициране на  позиция
   request.action       = TRADE_ACTION_SLTP;
   request.symbol       = symbol;
   request.sl           = StopLoss;
   request.tp           = Takeprofit;
   string word          = "";
   StringConcatenate(word,
                     "<<< ============ Modifyposition():   Модифицираме позицията  ",
                     symbol," ============ >>>");
   Print(word);
//---- модифицираме позицията и  проверяваме резултата от търговското искане
   if(!OrderSend(request,result) || result.deal==0)
     {
      Print("Modify error =", GetLastError());
      return(false);
     }
   return(true);
  }

好吧,现在它没有找到位置。

摆脱了 : ERR_TRADE_SEND_FAILED - 4756

现在是4753 -未找到位置

有时它起作用,但有这样一个错误,没有找到位置。

 
mario065:

谢谢你,雷谢托夫。

完成了。

修改功能本身。

好了,现在是找不到位置了。

摆脱了 : ERR_TRADE_SEND_FAILED - 4756

4753小时-未找到项目

有时它起作用,但有一个错误,没有找到位置。

你最好使用现成的贸易类。参见在编写EA时如何使用标准库交易类

例如,为一个符号修改位置。

//--- Класс CTrade
#include <Trade\Trade.mqh>

//--- Объект класса CTrade
CTrade mytrade;



void OnTick() {
...
  if (myposition.Select(_Symbol))
  {
    int newStoploss = 250;
    int newTakeprofit = 500;
    double SL = mysymbol.Ask() – newStoploss*_Point;    
    double TP = mysymbol.Ask() + newTakeprofit*_Point;  
    // модифицируем открытую позицию по этому символу
    mytrade.PositionModify(_Symbol,SL,TP);
  }
...
}
它出来的时候非常简短和清晰。
 

我知道了。

耶德尔金 提供了帮助。 这是代码。

谢谢 :)

附加的文件:
 

解除我的IP限制(我目前在家里的电脑上得到一个IP。

403 - запрещено. Доступ запрещен.
Предоставленные учетные данные не дают права на просмотр этого каталога или страницы.

).

我也失去了在云端和信号服务 中的授权,顺便说一下,有一个真实账户正在使用(曾经使用,因为现在没有授权)信号。

最多可运行10个终端+浏览器。我没有下载网站,没有破坏它,等等。- 我没有做任何违反论坛规则的事情。

 
notused:

解禁我的IP(我目前在家里的电脑上得到一个。

).

我也失去了在云端和信号服务中的授权,顺便说一下,有一个真实账户正在使用(曾经使用,因为现在没有授权)信号。

最多可运行10个终端+浏览器。我没有下载网站,没有破坏它,等等。- 我没有做任何与本论坛规则不一致的事情。

同样的问题,约14-00基辅,版主说我不在禁止之列,那么是什么原因?

 
notused:

解禁我的IP(我目前在家里的电脑上得到一个。

).

我也失去了在云端和信号服务中的授权,顺便说一下,有一个真实账户正在使用(曾经使用,因为现在没有授权)信号。

最多可运行10个终端+浏览器。我没有下载网站,没有破坏它,等等。- 我没有做任何违反论坛规则的事情。

陌生的?毕竟,如果我被禁止,甚至被IP禁止,那么我想我也不能在论坛上说话了?
 
Reshetov:
陌生的?毕竟,如果在禁止,甚至通过IP,那么在论坛上也不可能沟通?

版主说不在禁止之列,因为我用的是我的昵称,而且IP是通过自动隐藏IP改变的,但这只是一个掩码,终端还是在本机下运行,信号是无法传输的!

管理员回复!

 
remjte:

版主说不在禁止之列,因为我用的是我的昵称,而且IP是通过自动隐藏IP改变的,但这只是一个掩码,终端还是在本机下运行,信号是无法传输的!

管理员回复!

最好去服务台。虽然,可能不能,如果你有一个配置文件被封锁?
 
Reshetov:雷舍托夫
更好地联系服务台

我是从一个不同的IP上登录的。但该账户没有被禁止,被禁止的是IP。我给服务台写了信,我将等待他们明天的答复。