오류, 버그, 질문 - 페이지 873

 
mario065 :

안녕하세요 Reshetov님,

이것은 "도대체 무엇입니까?"를위한 것이지만 나에게 조건은 수정 기능을 호출해야 할 때입니다.

코드를 본다면 작성하지 않았을 것입니다.

코드는 다음과 같습니다.

  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 변수의 값과 로그의 열린 위치 가 무엇인지 확인하십시오.
 

Reshetov님, 감사합니다.

완성된:

   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 :

Reshetov님, 감사합니다.

완성된:

수정 기능 자체:

그래서 지금은 위치를 찾지 않습니다.

제거: ERR_TRADE_SEND_FAILED - 4756

대기 4753- 위치를 찾을 수 없습니다.

가끔 잘 되기도 하는데 위치를 못찾는 그런 오타도 있습니다.

기성품 거래 클래스를 사용하는 것이 좋습니다. Expert Advisor를 작성할 때 표준 라이브러리 거래 클래스를 사용하는 방법을 참조하십시오.

예를 들어 캐릭터의 위치를 수정하는 경우:

 //--- Класс 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);
  }
...
}
매우 짧고 명확합니다.
 

모두 받았습니다.

Yedelkin 이 도움을 주었습니다. 여기 코드가 있습니다.

감사해요 :)

파일:
 

내 IP 금지 해제 (이제 내 집 컴퓨터에서 다음을 얻습니다.

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

).

동시에 클라우드와 신호 서비스 에서의 권한 부여가 사라졌고, 그런데 실제 카운터에서 하나의 실제 카운터가 신호를 사용합니다(지금은 권한 부여가 없기 때문에 사용됨).

최대 10개의 터미널 + 브라우저를 출시했습니다. 사이트가 다운로드되지 않았거나 손상되지 않았습니다. - 일반적으로 포럼의 규칙에 위배되는 작업을 수행하지 않았습니다.

 
notused :

내 IP 금지 해제 (이제 내 집 컴퓨터에서 다음을 얻습니다.

).

동시에 클라우드와 신호 서비스에서의 권한 부여가 사라졌고, 그런데 실제 카운터에서 하나의 실제 카운터가 신호를 사용합니다(지금은 권한 부여가 없기 때문에 사용됨).

최대 10개의 터미널 + 브라우저를 출시했습니다. 사이트가 다운로드되지 않았거나 손상되지 않았습니다. - 일반적으로 포럼의 규칙에 위배되는 작업을 수행하지 않았습니다.

같은 문제, 키예프 시간 약 14-00에서 사회자가 내가 목욕탕에 있지 않다고 말했습니다. 그때 이유는 무엇입니까?

 
notused :

내 IP 금지 해제 (이제 내 집 컴퓨터에서 다음을 얻습니다.

).

동시에 클라우드와 신호 서비스에서의 권한 부여가 사라졌고, 그런데 실제 카운터에서 하나의 실제 카운터가 신호를 사용합니다(지금은 권한 부여가 없기 때문에 사용됨).

최대 10개의 터미널 + 브라우저를 출시했습니다. 사이트가 다운로드되지 않았거나 손상되지 않았습니다. - 일반적으로 포럼의 규칙에 위배되는 작업을 수행하지 않았습니다.

기이한? 결국 욕조에 있으면 IP로도 포럼에서도 소통이 안되는 것 같죠?
 
Reshetov :
기이한? 결국 욕조에 있으면 IP로도 포럼에서도 소통이 안되는 것 같죠?

진행자가 닉네임으로 해서 목욕 안한다고 해서 자동 숨김 ip로 IP를 바꿨는데 이건 마스크일 뿐이고 단말기는 계속 네이티브로 돌리고 신호도 안보내요!

관리자가 응답합니다!

 
remjte :

진행자가 닉네임으로 해서 목욕 안한다고 해서 자동숨김 ip로 IP를 바꿨는데 이건 마스크일 뿐이고 단말기는 계속 네이티브로 돌고 신호는 안보내요!

관리자님 답변 부탁드립니다!

서비스 데스크에 문의하는 것이 좋습니다. 하지만 프로필이 차단되면 작동하지 않을 것입니다.
 
Reshetov : 레셰토프 :
더 나은 연락 서비스 데스크

다른 IP에서 로그인합니다. 그리고 계정은 금지된 것이 아닙니다. 금지된 것은 IP입니다. 나는 서비스 데스크에 편지를 썼고 내일 그들이 말하는 것을 기다릴 것입니다.