[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 662

 
drknn :


첫 번째 매개변수는 숫자를 반환하고 두 번째 매개변수는 허용된 제한 내의 정수 값을 반환하기 때문에 맞습니다. 전체 질문은 변수에 정확히 무엇이 놓이느냐 하는 것입니다. 있는 그대로 인쇄하고 다음 구성을 시도하십시오.

흥미로운 것으로 판명되었습니다 ... 나는 이것을했습니다 :

 int Trend_BBOsMA ( string sy, int tf)
{
   if (sy== "" || sy== "0" ) sy= Symbol ();
double
   BB    = iCustom (sy,tf, "BB_MA" , 13 , 13 , 0 , 1 ),
   OsMA  = iOsMA   (sy,tf, 9 , 21 , 5 , PRICE_CLOSE , 1 ),
   AC1   = NormalizeDouble ( iAC (sy,tf, 1 ), 8 ),
   AC2   = NormalizeDouble ( iAC (sy,tf, 2 ), 8 ),
   AC3   = NormalizeDouble ( iAC (sy,tf, 3 ), 8 );
   
   Comment ( "\n" , "AC1 = " ,AC1, " AC2=" ,AC2);
   string str1=AC1;
   Print ( "str1 = " ,str1);
   string str2=AC2;
   Print ( "str2 = " ,str2);
   
   if (BB> 0 && OsMA> 0 && AC1>AC2) return ( 1 );
   if (BB< 0 && OsMA< 0 && AC1<AC2) return (- 1 );
   else return ( 0 );
}
동시에 코멘트가 화면에 표시됩니다.

AC1 = 0.001 AC2 = 0.001,

데이터 창에서 AC1 = 0.001008, AC2 = 0.001020,

로그는 다음과 같이 말합니다(마지막 두 값).

0.00100029
0.00100771

 
IgorM :

함수의 극한값을 찾는 방법을 알 수 없습니다.

값을 저장하는 데이터 배열이 있습니다.

중단점을 찾는 방법 - 250개 요소의 데이터 배열을 사용하여 극단값을 찾고 이러한 극단값이 위치한 요소 번호만 저장합니다.


여러분, 어렵습니다 :)
간단한 방법을 작성할 수도 있습니다.

 //+------------------------------------------------------------------+
void searchExtremums( double base [], double &find[]){
   int step = 1 ;
   for ( int loop = 0 ; loop < ArraySize( base )-2; loop++){
      if (( base [loop] > base [loop+ 1 ] && base [loop+ 1 ] < base [loop+ 2 ]) || ( base [loop] < base [loop+ 1 ] && base [loop+ 1 ] > base [loop+ 2 ])){
         ArrayResize(find, step);
         find[step - 1 ] = base [loop+ 1 ];
         step++;
      }
   }   
}
//+------------------------------------------------------------------+

Vladimir의 배열에 대한 호출의 예인 극한값(base)을 찾아야 하는 배열과 작성해야 하는 배열(찾기)을 전달합니다.

 double res[];
searchExtremum(my_array, res);

그리고 결과를 보여주세요:

 for ( int s = 0 ; s < ArraySize (res); s++) Alert (res[s])
그래서 더 수월해진 것 같아요 :)
 
ToLik_SRGV :


그래서 더 수월해진 것 같아요 :)


좋아요, 오늘 확인해 보겠습니다. 전류가 더 쉬울 수 있지만 조합이 내 머리에 맞지 않습니다.

무효 searchExtremums(더블 베이스[], 더블 & 찾기[]){

지금 이 기능들을 확인해야 합니다

 
IgorM :

좋아요, 오늘 확인해 보겠습니다. 전류가 더 쉬울 수 있지만 조합이 내 머리에 맞지 않습니다.

무효 searchExtremums(더블 베이스[], 더블 & 찾기[]){

지금 이 기능들을 확인해야 합니다

Igor, 이미 이 스레드에서 이 항목에 대해 썼습니다. :)))

변수를 함수에 전달할 때 매개변수를 통해 변수는 값으로 전달됩니다. 즉, 함수 자체에서 변수를 변경해도 덮어쓰기가 발생하지 않습니다.
참조로 전달을 시도하십시오. 이렇게 하려면 매개변수 이름 앞에 "&" 기호를 삽입하십시오.

 void simple( string &s){
//                 ^
//       спец сим. & перед именем переменной задает передачу по ссылке, а не по значению
//
}
 
Mathemat :

Volfram 의 게시물은 여러 스레드에 퍼진 것으로 인해 제거되었습니다.

Volfram , 이 목적을 위해 특별히 고유한 분기를 만들었습니다. 당신은 이미 답변을 받았습니다. 충분하지 않다?

추신: Volfram님 의 비밀을 말씀드리겠습니다. 귀하의 아이디어에 대한 분명한 관심이 없다는 것은 이 아이디어가 관심을 받을 가치가 없다는 것을 암시합니다. 따라서 "무료로" 구현하려는 사람이 없었습니다.

이메일 알림 옵션을 비활성화했습니다.

이것이 없으면 답변한 곳과 응답하지 않은 곳을 어떻게 알 수 있습니까 ?? 이 옵션을 언제 반환합니까?

 
artmedia70 :

흥미로운 것으로 판명되었습니다 ... 나는 이것을했습니다 :

동시에 코멘트가 화면에 표시됩니다.

AC1 = 0.001 AC2 = 0.001,

데이터 창에서 AC1 = 0.001008, AC2 = 0.001020,

로그는 다음과 같이 말합니다(마지막 두 값).

0.00100029
0.00100771


글쎄, 이것은 아마도 개발자를위한 것입니다.)
 
artmedia70 :

흥미로운 것으로 판명되었습니다 ... 나는 이것을했습니다 :

동시에 코멘트가 화면에 표시됩니다.

AC1 = 0.001 AC2 = 0.001,

데이터 창에서 AC1 = 0.001008, AC2 = 0.001020,

로그는 다음과 같이 말합니다(마지막 두 값).

0.00100029
0.00100771

나는 또한 시도했지만 모든 것이 정상인 것 같습니다.
AC = -0.0004, 기록 -0.00035586
AC2 = -0.0007, 로그 -0.00068589
 
ToLik_SRGV :
나는 또한 주석에서 모든 것이 정상인 것 같습니다.
AC = -0.0004, 기록 -0.00035586
AC2 = -0.0007, 로그 -0.00068589

Comment()는 값을 자체 내부에서 반올림하는 것 같습니다... 그리고 시각적 테스트 중에 화면에서 바로 볼 수 있다는 것이 얼마나 편리한지... 그러나 정확히는... :)

예, 그런데 여기 정규화 포럼에서 아침 7시 30분까지 몇 시간 동안 이것을 읽었습니다.
Normalization은 최대한 비교 연산에 가깝게 해줘야 하는데... 그래서 몇몇 기능이나 코드에서 뭔가를 바꿔야 할 것 같은데... 그리고 테스트를 해보면 그 차이가 보이네요...

 
artmedia70 :

Comment()가 값을 반올림하는 것 같습니다... 그리고 시각적 테스트 중에 화면에서 바로 볼 수 있다는 것이 얼마나 편리한지... 하지만 정확히는 아닙니다...:)

이러한 반올림으로 인해 로트 관리 기능을 작성할 때 MQL4로 필요한 작업을 전혀 해결할 수 없었기 때문에 Delphi에서 dll-library를 만들어야 했습니다...
 

안녕하세요! MQL4의 슈퍼 찻주전자인 저에게 올바르게 하는 방법을 설명해주세요. 나는 첫 번째 조언자를 씁니다. SellStop 주문이 설정되고 트리거된 후 BuyStop이 설정됩니다. OrdeCloseTime을 사용해야 한다고 생각합니다. 많은 옵션을 시도했지만 EA는 OrdeCloseTime==0일 때만 주문을 봅니다. SellStop을 닫은 후 SellStop이 다시 열립니다. 코드를 제공합니다. 이 옵션에서는 SellStop과 BuyStop이 동시에 열립니다. 도와주세요, 제발. 미리 감사드립니다.

정수 I = 0;

정수 시작()

{

만약 (나는 < 1)

{

ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,OP_SS,Slippage,SL,CP_SS);

만약 (티켓>0)

{ Alert("주문 보내기"," ",티켓); } else { Alert("!OrderSend"," ", GetLastError() ); }

//------------------------------------------------ --------------------------

if (OrderSelect(티켓,SELECT_BY_TICKET)==true)

{ Alert("주문 선택"," ",티켓); } else { Alert("!OrderSelect"," ",GetLastError()); }

//------------------------------------------------ --------------------------

OrderSend(Symbol(),OP_BUYSTOP,Lot,OP_BS,Slippage,SL,CP_BS);

}

나는=1;

}

리턴(0);

//------------------------------------------------ --------------------------

사유: