엘리엇 파동 이론에 기반한 거래 전략 - 페이지 296

 
안드레69

웨이블릿 변환 계수로 추가 조작을 시도하지 않았습니다.
결과적으로 다음과 같은 결과를 얻습니다.
 
얘들아, 그들은 조국의 이익을 위해 일할 것이고, 과학을 할 것이고, 유용한 것을 생각해 낼 것이고, 마침내 그들의 야망을 보여줄 것입니다.
 
동료 여러분, 작은 질문이 있습니다. 올바르게 입력하는 방법 - 배열의 요소 수를 동적으로 확장할 수 있습니까? 예를 들어, 제로 바의 일부 영역에서 안정적인 채널을 찾고 있습니다. 검색이 시작된 이래로 나는 그들의 번호를 알지 못하므로 찾지 못할 수도 있습니다. 읽은 문서에서 불가능한 것으로 이해되는 것 같습니다. 이 경우입니까, 아니면 더 까다로운 방법이 있습니까?

추신: 지금까지 MT에서 몇 가지 옵션을 생각해 냈습니다(MathCAD에는 그러한 문제가 없습니다).

(하나). 매개변수를 생성합니다(int count=0;). 루프에서 범위를 탐색하고 기준을 확인하고 충족하는 경우 count=count+1을 확인합니다. 다음으로 수신된 개수로 배열을 만들고 모든 것을 새로 반복합니다. 계산된 매개변수를 배열에 쓰고 최적의 채널을 선택합니다.

(2) 초기 범위 길이에 따라 채널 매개변수에 대한 배열을 생성합니다.
 
grasn
... 올바르게 입력하는 방법 - 배열의 요소 수를 동적으로 확장할 수 있습니까? 예를 들어, 제로 바의 일부 영역에서 안정적인 채널을 찾고 있습니다. 검색이 시작된 이래로 나는 그들의 번호를 알지 못하므로 찾지 못할 수도 있습니다.

솔직히 말해서, 질문은 완전히 명확하지 않습니다. 배열의 요소 수(크기)는 ArrayResize를 사용하여 동적으로 변경됩니다. 정말로 구조를 만들고 싶다면 MT5에서만 약속됩니다.
순전히 단어의 자음으로 - 나는 주문의 추가 속성 문제를 해결했습니다. 그 수 또한 미리 정확히 알려져 있지 않고 속성의 수(동일한 40개 지표)도 사전에 알지 못했습니다. 세 가지 기능이 사용되었지만 각각에 수동으로 새 속성을 추가하고 다시 컴파일해야 했습니다. 이게 맞는지 아닌지는 모르겠지만 혹시라도 최신버전의 코드를 올릴까봐
//+------------------------------------------------------------------+
//| Изменение размеров массивов свойств ордера                       |
//+------------------------------------------------------------------+
int ResizeOrdArrays() {
  ArrayResize(OrdID,OrdArrSize);
  ArrayResize(OrdTicket,OrdArrSize);
//  ArrayResize(OrdData1,OrdArrSize);
//  ArrayResize(OrdData2,OrdArrSize);
//  ArrayResize(OrdData3,OrdArrSize);
//  ArrayResize(OrdData4,OrdArrSize);
  return(0);
}
//+------------------------------------------------------------------+
//| Добавление ордера в список ордеров                               |
//+------------------------------------------------------------------+
int AddOrder(int ID) {
  OrdInd=OrdNum;
  OrdNum++;
  if (OrdNum > OrdArrSize) {
    OrdArrSize = OrdNum;
    ResizeOrdArrays();
  }
  OrdID[OrdInd] = ID;
  OrdTicket[OrdInd] = ticket;
//  OrdData1[OrdInd] = 123.45;
//  OrdData2[OrdInd] = 123.45;
//  OrdData3[OrdInd] = 123.45;
//  OrdData4[OrdInd] = 123.45;
  return(0);
}
//+------------------------------------------------------------------+
//| Исключение ордера из списка ордеров                              |
//+------------------------------------------------------------------+
int CutOrder() {
  OrdNum--;
  if (OrdInd < OrdNum) {
    OrdID[OrdInd] = OrdID[OrdNum];
    OrdTicket[OrdInd] = OrdTicket[OrdNum];
//    OrdData1[OrdInd] = OrdData1[OrdNum];
//    OrdData2[OrdInd] = OrdData2[OrdNum];
//    OrdData3[OrdInd] = OrdData3[OrdNum];
//    OrdData4[OrdInd] = OrdData4[OrdNum];
  }
  return(0);
}



PS 그건 그렇고, 나는 내 채널에 비슷한 "구조"를 사용했습니다.

 

...배열의 요소 수(크기)는 ArrayResize를 사용하여 동적으로 변경됩니다. ...


그러나 이미 생성된 배열의 크기를 변경하면 배열이 0이 되지 않습니까?
 
아니요. 이것은 인쇄로 확인됩니다.
 
아니요. 이것은 인쇄로 확인됩니다.


고맙습니다. 인쇄가 잘못된 것 같습니다. :에 대한)
 
흠, 나는 오랫동안 직접 확인하지 않았지만 첫째, 모든 것이 잘 작동하는 것 같고 둘째, Renat 는 이 속성이 문서화된 것으로 간주될 수 있음, 즉 모든 새 버전에서 지원되는 것으로 간주될 수 있다고 분명히 확신했습니다.
 
확인합니다. 배열 크기가 1 증가하면 배열 끝에 새로운 0 요소가 추가됩니다. 나머지 요소는 변경되지 않은 상태로 유지됩니다.
행렬의 크기가 조정되면 null 행이 추가됩니다.
 
고맙습니다. 당신은 절대적으로 내가 코드에서 무언가를 과도하게 만들었다고 말할 수 있습니다. 확인. 이 기능은 작업을 크게 단순화합니다.