MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 870

 
Alexey G. Smolyakov :
MQL4\Indicators\Used 폴더의 전체 경로입니다. 폴더에서 빠져나갈 방법이 없는 것 같습니다. 그러나 이것은 주제에서 벗어난 것입니다. 다른 고문은 문제없이 유사한 폴더에서 지표로 작업합니다. 하지만 이 표시기의 문제점은 무엇입니까? 이해가 되지 않습니다. 그의 코드를 보았지만 그것을 알아낼 지식과 경험이 충분하지 않습니다. 그가 마지막 마디나 그런 것만 세는 것 같다는 의혹이 있다.

그럼 모든게 괜찮아

터미널에서 Ctrl + D를 누르십시오 - 데이터 창이 열리고 차트에 표시기를 놓으면 데이터 창에서 표시기 버퍼와 각 막대의 값을 볼 수 있으며 iCustom()을 통해 동일한 숫자를 얻습니다.

추신; 일부 막대에는 EMPTY_VALUE 값이 있다는 표시기가 있습니다. 데이터 창에 빈 셀이 있습니다(표시기 작성자가 EMPTY_VALUE 대신 0.0과 같이 설정하지 않은 것은 사실이 아닙니다. 확인해야 함).

그런 다음 iCustom()을 호출할 때 받은 값을 EMPTY_VALUE와 비교해야 합니다. ZigZag에 대한 Expert Advisors 또는 파일에 ZigZag 업로드에 대한 코드베이스를 찾으십시오. 거기에서 EMPTY_VALUE 표시기의 빈 값으로 작업하는 방법에 대한 기성품 예를 볼 수 있습니다.

 
Igor Makanu :

그럼 모든게 괜찮아

터미널에서 Ctrl + D를 누르십시오 - 데이터 창이 열리고 차트에 표시기를 놓으면 데이터 창에서 표시기 버퍼와 각 막대의 값을 볼 수 있으며 iCustom()을 통해 동일한 숫자를 얻습니다.

추신; 일부 막대에는 EMPTY_VALUE 값이 있다는 표시기가 있습니다. 데이터 창에 빈 셀이 있습니다(표시기 작성자가 EMPTY_VALUE 대신 0.0과 같이 설정하지 않은 것은 사실이 아닙니다. 확인해야 함).

그런 다음 iCustom()을 호출할 때 받은 값을 EMPTY_VALUE와 비교해야 합니다. ZigZag에 대한 Expert Advisors 또는 파일에 ZigZag 업로드에 대한 코드베이스를 찾으십시오. 거기에서 EMPTY_VALUE 표시기의 빈 값으로 작업하는 방법에 대한 기성품 예를 볼 수 있습니다.

감사합니다. EMPTY_VALUE 값을 확인하는 데 도움이 되었습니다.
 
안녕하세요. 설정(Only Long / Only Short / Long & Short)에서 설정한 내용을 보여주는 기능을 만드는 방법입니다. 이렇게 시도했지만 작동하지 않습니다
 string LSset()
{
string LS;
if ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) == SYMBOL_TRADE_MODE_LONGONLY ) LS= "ONLY LONG" ;
if ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) == SYMBOL_TRADE_MODE_SHORTONLY ) LS= "ONLY SHORT" ;
if ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) != SYMBOL_TRADE_MODE_SHORTONLY && 
   SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_MODE ) != SYMBOL_TRADE_MODE_LONGONLY ) LS= "LONG & SHORT" ;
return (LS);
}
파일:
 
Lomonosov1991 :
안녕하세요. 설정(Only Long / Only Short / Long & Short)에서 설정한 내용을 보여주는 기능을 만드는 방법입니다. 이렇게 시도했지만 작동하지 않습니다

따라서 작동하지 않아야 합니다. 이러한 함수를 작성하는 것은 가능하지만 초보자에게는 어렵습니다.

 
fxsaber :

따라서 작동하지 않아야 합니다. 이러한 함수를 작성하는 것은 가능하지만 초보자에게는 어렵습니다.

검색 드라이브, 몇 년 전에 개발자는 전문가로부터 이러한 설정에 액세스할 수 있다고 약속했지만 결코 하지 않았습니다.

솔루션 https://www.mql5.com/ru/forum/121619#comment_3208150

dll이 있는 솔루션, 왜 필요한지 모르겠습니다 https://www.mql5.com/ru/forum/231434/page2#comment_6773340

추신: 확인은 안해봤는데 토픽 검색해보니 차트 템플릿 적용시 이 설정들이 저장이 안 되는 문제가 남아있었던 것 같습니다.

LongOnly, ShortOnly or Long&Short?
LongOnly, ShortOnly or Long&Short?
  • 2009.11.03
  • www.mql5.com
Не подсажет ли кто нибудь как внутри советника оределить в каком режиме он запущен LongOnly, ShortOnly or Long&Short? Заранее спасибо...
 
extern int punkt= 100 ;
extern int Ordersss= 3 ;
extern double xxx= 1.2 ;

int PunktsX()
{
   int P=punkt;                             
   int i;
   for (i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return (P);
}

평균 Expert Advisor를 위한 기능을 만들었습니다. 3개 이상의 주문이 열려 있으면 각 후속 주문이 추가로 열립니다.

그러나 경고를 수정할 수 없습니다(유형 변환으로 인한 데이터 손실 가능성 ).

어떻게 되는지 알려주세요)

 
Lomonosov1991 :

평균 Expert Advisor를 위한 기능을 만들었습니다. 3개 이상의 주문이 열려 있으면 각 후속 주문이 추가로 열립니다.

그러나 경고를 수정할 수 없습니다(유형 변환으로 인한 데이터 손실 가능성 ).

어떻게 되는지 알려주세요)

 P= ( int )(P*xxx);

더 정확한 계산을 위해 아마도 다음과 같이 더 나을 것입니다.

 extern int punkt= 100 ;
extern int Ordersss= 3 ;
extern double xxx= 1.2 ;

int PunktsX()
{
   double P=punkt;                             
   int i;
   for (i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return ( int ) P;
}
 
Konstantin Nikitin :

더 정확한 계산을 위해 아마도 다음과 같이 더 나을 것입니다.

고마워) 반품으로 할 수 있는지 몰랐어)

 
Igor Makanu :

검색 드라이브, 몇 년 전에 개발자는 전문가로부터 이러한 설정에 액세스할 수 있다고 약속했지만 결코 하지 않았습니다.

솔루션 https://www.mql5.com/en/forum/121619#comment_3208150

dll이 있는 솔루션, 왜 필요한지 모르겠습니다 https://www.mql5.com/ru/forum/231434/page2#comment_6773340

추신: 확인은 안해봤는데 토픽 검색해보니 차트 템플릿 적용시 이 설정들이 저장이 안 되는 문제가 남아있었던 것 같습니다.

감사합니다, 시도하겠습니다)

 
Lomonosov1991 :

감사합니다, 시도하겠습니다)

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

도서관: 전문가

fxsaber , 2019.06.04 16:40

 // MT4-советник показывает, в каком режиме Long/Short был запущен.

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

int GetLongShortFlag( const int Chart_ID = 0 )
{
   MqlParam Params[];
   string Names[];
  
   const int Res = EXPERT::Parameters(Chart_ID, Params, Names);
  
   return (((Res & 3 ) << 1 ) + (Res & 1 ));
}

string LongShortToString( const int Chart_ID = 0 )
{
   const int Flag = GetLongShortFlag(Chart_ID);
   string Str = NULL ;
  
   if (( bool )(Flag & SYMBOL_TRADE_MODE_LONGONLY ) && ( bool )(Flag & SYMBOL_TRADE_MODE_SHORTONLY ))
    Str = "Long & Short" ;
   else if (( bool )(Flag & SYMBOL_TRADE_MODE_LONGONLY ))
    Str = "Only Long" ;
   else if (( bool )(Flag & SYMBOL_TRADE_MODE_SHORTONLY ))
    Str = "Only Short" ;
    
   return (Str);
}

int OnInit ()
{
   Alert (LongShortToString());
  
   return ( INIT_FAILED );
}
사유: