[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 515

 
edyuson :

난 상관 없어, 내 퍼즐이 아니야. 방금 필요한 유사한 알고리즘을 찾았고 완료하려고 노력하고 있습니다. 딱 필요한 방식입니다. https://www.mql5.com/en/code/9927 Che 제거, 남은 것.

0.01,0.01,0.01을 사냥하고 있습니다. 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08.......

일부는 배열을 통해 수행
 
YOUNGA :
일부는 배열을 통해 수행


다음과 같이 다소:

 double mas[ 3 ];
int q;
int w;

for ( int z= OrdersHistoryTotal ()- 1 ; z> 0 ; z--)
{
 OrderSelect (z, SELECT_BY_POS, MODE_HISTORY);
 if ( OrderSymbol ()== Symbol ())
 {
   if ( OrderProfit ()> 0 || q>= 3 ) break ;
   if ( OrderProfit ()< 0 )
  {
  mas[q]= OrderLots ();
  q++;
  }
 }
}
if (mas[ 0 ]< 0 && mas[ 1 ]< 0 && mas[ 2 ]< 0 ) w= 1 ; //Ваше условие
 

여기요!

여러분, 칠면조 시작 시 통화 쌍의 가용성을 확인하는 방법을 조언해 주시겠습니까?

나는 이미 이 uh-ku-el과 싸우기로 했다.

코드는 다음과 같습니다.

[CODE]

extern string CurrencyPair = "" ;
string gsSymbol, gsIndiName;

bool bIndicatorError;

...

int start() {

if ( StringLen (CurrencyPair) == 0 )
gsSymbol = Symbol ();

else

gsSymbol = CurrencyPair;

Comment ( MarketInfo (gsSymbol, MODE_TRADEALLOWED)); // ЗАКОВЫКА ЗДЕСЬ, это чудо всегда возвращает 0.0000000 при старте терминала. Если же потом открыть свойства индикатора и даже ничего не поправлять в параметрах, то возвращает 1.000000

if (! MarketInfo (gsSymbol, MODE_TRADEALLOWED)) {
Alert (gsIndiName, ": Trade is not allowed for symbol [" , gsSymbol, "]" );
bIndicatorError = true;
return (- 1 );
}

}

[CODE]

더 좋고 빠른 방법이 있을지도 모릅니다.

일반적으로 기본 기능이 작동하거나 작동하지 않는 언어로 프로그램을 작성하는 것이 어떻게 가능한지 이해가 되지 않습니다.

 
조정된 매개변수로 스크립트를 작성할 수 있는지 여부를 묻는 메시지가 표시됩니까? 시작 시 매개 변수를 입력하라는 메시지가 표시되는 스크립트를 어디선가 만난 것 같습니다.
 
sss2019 :
조정된 매개변수로 스크립트를 작성할 수 있는지 여부를 묻는 메시지가 표시됩니까? 시작 시 매개 변수를 입력하라는 메시지가 표시되는 스크립트를 어디선가 만난 것 같습니다.
스크립트에서 외부 매개변수를 extern으로 만듭니다.
 
artmedia70 :
스크립트에서 외부 매개변수를 extern으로 만듭니다.


나는 설정을 했다

 extern string StartTime = "2011.01.01" ;
extern string EndTime = "2011.01.25" ;

그러나 어떤 이유로 스크립트는 실행 전에 설정을 표시하지 않습니다

 
Dobr :


다음과 같이 다소:

 double mas[ 3 ];
int q;
int w;

for ( int z= OrdersHistoryTotal ()- 1 ; z> 0 ; z--)
{
 OrderSelect (z, SELECT_BY_POS, MODE_HISTORY);
 if ( OrderSymbol ()== Symbol ())
 {
   if ( OrderProfit ()> 0 || q>= 3 ) break ;
   if ( OrderProfit ()< 0 )
  {
  mas[q]= OrderLots ();
  q++;
  }
 }
}
if (mas[ 0 ]< 0 && mas[ 1 ]< 0 && mas[ 2 ]< 0 ) w= 1 ; //Ваше условие
지금까지 이 방법으로만: 0.01, 0.02, 0.04, 0.08, 0.16... 0.01,0.01,0.01이 필요합니다. 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08.......
 
sss2019 :


나는 설정을 했다

그러나 어떤 이유로 스크립트는 실행 전에 설정을 표시하지 않습니다

https://docs.mql4.com/en/basis/preprosessor/compilation
 
edyuson :
지금까지 이 방법으로만: 0.01, 0.02, 0.04, 0.08, 0.16... 0.01,0.01,0.01이 필요합니다. 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08.......


글쎄, 나는 대략적으로 썼다 ...;)

더 정확한 버전은 다음과 같습니다.

 double mas[ 3 ]={ 0 , 0 , 0 };
int q= 0 ;
int w= 0 ;
int z= 0 ;
for (z= OrdersHistoryTotal ()- 1 ;z> 0 ; z--)
{
 OrderSelect (z, SELECT_BY_POS, MODE_HISTORY);
 if ( OrderSymbol ()== Symbol ())
 {
   if ( OrderProfit ()> 0 || q== 3 ) break ;
   if ( OrderProfit ()< 0 )
  {
  mas[q]= OrderLots ();
  q++;
  }
 }
}
if (mas[ 0 ]==lot && mas[ 1 ]==lot && mas[ 2 ]==lot) w= 1 ;
if (w== 1 ) lot= OrderLots ()* 2 ;
 
ForexTader :


일반적으로 기본 기능이 작동하거나 작동하지 않는 언어로 프로그램을 작성하는 것이 어떻게 가능한지 이해가 되지 않습니다.


init에서 시작으로 검사의 일부를 전송하려고 시도할 수 있습니다. 그것은 바로 거기에로드됩니다. 단말기 상태 등을 확인할 수도 있습니다.