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

 
skyjet :

안녕하세요! 내 목표는 EA에 기능을 만들어 표시기를 전송하는 것입니다.

첫 번째 단계 - 즉, 함수 생성을 완료했습니다. 그러나 다음 확인은 작동하지 않습니다.

표시기는 채널을 그립니다. 4개의 버퍼와 많은 외부 변수가 있습니다. 이 모든 것을 함수에 넣었습니다.

그러나 표시기와 내 기능을 비교하여 작업의 정확성을 확인하기 위해 테스트 EA를 만들 때 컴파일할 수 없습니다.

함수 생성 시 존재하지 않던 외부 변수의 영구 오류가 EA에 나타났습니다.

저에게 조언이나 예시에 대한 링크를 주십시오. 나는 GODZILLA 기사를 사용했지만 그의 예는 나와 다릅니다.

계획은 다음과 같습니다.

  • 표시기의 init()에 있던 모든 것을 별도의 함수(예: fInit_Indicator())로 전송하고 이를 어드바이저의 init()에 씁니다. 이때 표시기 초기화와 관련된 코드에서 모든 것을 제거하는 것을 잊지 마십시오. 버퍼 .
  • 모든 글로벌 지표 변수를 복사하여 EA 글로벌 변수에 배치합니다. EA에서 선언할 때 표시기 버퍼를 정의하는 것을 잊지 마십시오. gd_Buf1[100], gd_Buf2[100] 등 100값이면 충분하다고 생각합니다.
  • 표시기의 start() 함수 이름을 fMyIndicator()와 같이 변경하고 EA의 start() 함수로 이전 주문을 열기 위한 코드(결정을 내리기 위해) 앞에 둡니다.
  • 표시기 버퍼가 "비 표시기" 버퍼와 다르다는 것을 잊어서는 안됩니다. 이에 대한 몇 가지 솔루션이 있습니다.
  • 새 막대가 도착하면 "non-indicator" 배열의 모든 데이터가 이동되어 새 계산 값이 배치되는 0번째 인덱스가 해제됩니다.
  • 다시, 새 막대가 도착하면 전체 "비 표시기 배열"을 다시 계산하십시오.

연습 - 복잡하지 않습니다.

 
999666 :
n-주문을 연 후 어드바이저가 로트를 두 배로 늘리는 조건 작성을 도와주세요.
 if (MyOrders >= n) Lots *= 2 ;
 

안녕하세요!

저는 계속해서 배열을 다루고 있습니다.

각 새 틱마다 포인트 수 값을 배열에 로드해야 합니다.

배열의 크기는 매번 다릅니다. 이 경우 루프의 각 반복에서 ArrayResize를 사용하는 방법은 무엇입니까?

 

안녕하세요. 배열 주제에.

이런 세포가 있다

12345,p,fgh,2011-01-01,55,66

어떻게 55를 얻을 수 있습니까?

uv와 함께. 감사하다.

 

배열이 이질적인 경우 모든 요소를 문자열 유형으로 캐스트한 다음 다음을 통해 원하는 요소를 찾아야 합니다.

문자열 찾기 ( https://www.mql5.com/en/forum/138609/page22#613148 ) . 잘못된 경우 수정합니다.

 
TarasBY :

도움이 되지 않았습니다. 어렵지 않다면 두 가지 조건이 있습니다 if (LotConst_or_not) gd_200 = Lot;

else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;

고문이 잔액에서 계산되지 않고 미결 주문 수에서 계산되도록 대체 할 항목.

답변해 주시면 감사하겠습니다.

 
TarasBY : 도움이 되지 않았습니다. 어렵지 않다면 두 가지 조건이 있습니다 if (LotConst_or_not) gd_200 = Lot;

else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;

고문이 잔액에서 계산되지 않고 미결 주문 수에서 계산되도록 대체 할 항목.

답변에 감사드립니다.


 
Snegovik :

안녕하세요. 배열 주제에.

이런 세포가 있다

12345,p,fgh,2011-01-01,55,66

어떻게 55를 얻을 수 있습니까?

uv와 함께. 감사하다.


https://book.mql4.com/en/variables/arrays
 
999666 :
n-주문을 연 후 어드바이저가 로트를 두 배로 늘리는 조건 작성을 도와주세요.
다음(4 등)이 2 x 랏으로 이미 개설된 3개의 주문으로 개설되도록 하려면 다음을 수행하십시오.
 int Opened_pos= 0 ;
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{ if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
  { if ( OrderSymbol ()== Symbol () && ( OrderType ()==OP_BUY || OrderType ()==OP_SELL))
    { Opened_pos++;
} } }
if (Opened_pos>=4) double lot=lot* 2 ;
 
Fox_RM :

안녕하세요!

저는 계속해서 배열을 다루고 있습니다.

각 새 틱마다 포인트 수 값을 배열에 로드해야 합니다.

배열의 크기는 매번 다릅니다. 이 경우 루프의 각 반복에서 ArrayResize를 사용하는 방법은 무엇입니까?

첫 번째: 처음에는 어레이 크기를 변경하려는 철학에 결함이 있습니다. 100개 중 99개의 경우에서 표시기 판독값을 처리하기 위해 10개의 셀로 얻을 수 있습니다.

두 번째: 각 진드기에 대한 이러한 징후를 다시 계산하는 것은 정보가 부족한 두뇌의 변덕입니다.