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

 

테스터의 작업에 대한 질문이 있습니다 . 테스트를 통과한 후 매개변수(날짜, 통화 쌍, 기간)를 변경하고 테스트를 다시 시작합니다. 테스트가 계속 진행되고 완료되면 "차트 " 및 "보고서" 탭은 전혀 변경되지 않습니다. 모든 것이 이전 테스트에서 그대로 유지됩니다. 저장된 보고서도 오래되었습니다. 그 이유는 무엇이며 해결 방법은 무엇입니까? 결과를 재설정하는 기능이 있습니까?

나는 매뉴얼, 기사, 포럼 검색 - 그런 문제에 대한 언급을 보지 못했습니다.

 

좋은 하루입니다. 아직 크런치 표시기를 다시 작업 중입니다.(이에 대해 조언자를 만들려고 합니다.) 결론은 외부 파일에 넣을 수 있는 모든 것을 터키의 화면에 출력만 남겨두는 것입니다. ) 고문으로, 그것은 작동하지 않습니다, 나는 무엇이 잘못되었는지 이해하지 못합니다. 도와주세요, 조금 남아 있습니다, 아아, 돈이없고, 마지막 하나는 지금 거래 계정에 있지만 시스템은 쟁기질 확인해보니 혹시 필요하신 분이 계시다면 수동매매 에 대한 소소한 리포트를 던질 수 있습니다. 마이너스가 있긴 하지만 딱 하나(매우 크긴 하지만 보증금을 거의 먹어치울 뻔 했습니다) 파일 2개를 첨부합니다.

1) 보고서와 함께

2) 내 발전의 단편들과 함께 내가 시작한 일을 완료하는 데 도움을 줄 사람, 나는 그들과 전략을 공유할 것입니다(크런칭 지표는 전략의 일부일 뿐이지만 중요합니다). 이 시점까지 모든 것이 상승하고 있으며 어떤 진전이 있는지 알 수 있습니다.)

파일:
 
다음은 코드 조각입니다.
파일:
 

무슨 일이야? 일반적으로 연속 4개의 주문을 수정하지만 4번째에서 각 틱 은 OrderModify 오류 1을 쓰기 시작합니다.

추세 반전 후 첫 번째 순서는 괜찮고 두 번째 순서는 번역하지만 다시 같은 넌센스를 씁니다...

정규화는 중요하지 않습니다.

몇일째 화이팅입니다!

   for (x=0;x<OrT;x++)
   {
   if (OrderSelect(x,SELECT_BY_POS)==true)
    {
     if (OrderMagicNumber() == magic)
      {
       if (OrderType = OP_BUY)
       {
       shift = iBarShift(Symbol(),30,OrderOpenTime());                           //запомнил свечу открытия
        for (m=shift;m>=1;m--)
        if (High[m]-OrderOpenPrice() >= TS*Point)
        {
         if (OrderOpenPrice()+spread*Point != OrderStopLoss())
         {
          OrderModify(OrderTicket(),OrderOpenPrice(),                           //переводит SL в безубыток
          OrderOpenPrice()+spread*Point,OrderTakeProfit(),0,CLR_NONE);
          return;
         }
        }
       }
      }
     if (OrderMagicNumber() == magic)
     {
      if (OrderType = OP_SELL)
      {
       shift = iBarShift(Symbol(),30,OrderOpenTime());                           //запомнил свечу открытия
        for (m=shift;m>=1;m--)
        if (OrderOpenPrice()-Low[m] >= TS*Point)
        {
         if (OrderOpenPrice()-spread*Point != OrderStopLoss())
         {
           OrderModify(OrderTicket(),NormalizeDouble(OrderOpenPrice(),dig),     //переводит SL в безубыток
           NormalizeDouble(OrderOpenPrice()-spread*Point,dig),
           NormalizeDouble(OrderTakeProfit(),dig),0,CLR_NONE);
           return;
         }
        }
       } 
      }
    }
   }

미리 감사드립니다.

 
CYBOPOB :

무슨 일이야? 일반적으로 연속 4개의 주문을 수정하지만 4번째에서 각 틱은 OrderModify 오류 1을 쓰기 시작합니다.

추세 반전 후 첫 번째 순서는 괜찮고 두 번째 순서는 번역하지만 다시 같은 넌센스를 씁니다...

정규화는 중요하지 않습니다.

몇일째 화이팅입니다!

미리 감사드립니다.

직접 규칙 을 고려하거나(코드 작성 시) 이러한 규칙이 이미 고려된 기성 솔루션을 사용하십시오.
 
CYBOPOB :

무슨 일이야? 일반적으로 연속 4개의 주문을 수정하지만 4번째에서 각 틱은 OrderModify 오류 1을 쓰기 시작합니다.

추세 반전 후 첫 번째 순서는 괜찮고 두 번째 순서는 번역하지만 다시 같은 넌센스를 씁니다...

정규화는 중요하지 않습니다.

몇일째 화이팅입니다!

미리 감사드립니다.

수정하기 전에 주문 중지 매개변수가 새 중지 매개변수와 같지 않은지 확인해야 합니다. 동일하면 수정할 사항이 없습니다. 따라서 오류 1.
 

배열 정렬 정보.
두 개의 배열을 정렬하려고 합니다. 첫 번째 배열은 오름차순( function ArraySort (num_array);)이고 두 번째 배열은 첫 번째 배열에 따라 첫 번째 배열의 다섯 번째 요소가 첫 번째 위치로 이동하면 두 번째도 (첫 번째 장소에서 다섯 번째 요소).
MQL에 공동 배열 정렬 기능이 있는 경우 링크를 제공하십시오.
감사합니다. 쉬.

 
artmedia70 :
수정하기 전에 주문 중지 매개변수가 새 중지 매개변수와 같지 않은지 확인해야 합니다. 동일하면 수정할 사항이 없습니다. 따라서 오류 1.


그래서, 그렇지 않습니까?

 if (OrderStopLoss() != OrderOpenPrice()-spread* Point )

Artyom, 업무에 사용하지 말고 코드를 작성 하십시오. 응? 아니면 당신의 손에 그 물건을 주십시오, 내가 이 고통을 끝내겠습니다...

 
CYBOPOB :

그래서, 그렇지 않습니까?

Artyom, 업무에 사용하지 말고 코드를 작성 하십시오. 응? 아니면 당신의 손에 그 물건을 주십시오, 내가 이 고통을 끝내겠습니다...


하지 그. 당신은 또한 다음과 같이 들었습니다.

수정하기 전에 주문 중지 매개변수새 중지 매개변수와 같지 않은지 확인해야 합니다. 동일하면 수정할 사항이 없습니다. 따라서 오류 1.

 

전문가들에게 질문이 있었습니다. 기능을 보편적으로 만들고 싶습니다. 이 기능은 동일한 기호(강세 또는 약세, 크기에 해당, 아마도 다른 것을 추가할 수 있음)의 막대가 서로 얼마나 많은지 계산하고 막대가 이 기호에 해당하지 않는 경우 즉, 예를 들어, 다른 방향으로 향하는 경우 카운터는 0으로 재설정됩니다.

다음은 옵션 중 하나에서 계산하는 코드입니다. 저것들. 한 기호의 막대가 올라가면, 즉 강세.

 int LastCandlesType( int trend)
{
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)     // Если бар соответствует требуемым признакам..
          cnt++;                                                                     // .. прибавим 1 к счётчику

       if (Close[i] < Open[i])                                                         // Если бар, не соответствует основному признаку..
          cnt = 0 ;                                                                   // .. счётчик обнуляем
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

현재 가정된 주요 추세를 전송하는 역할을 하는 이 함수에 추세 매개변수를 전달할 때 이 매개변수를 기반으로 추가 계산이 수행되도록 만드는 방법.

저것들. trend == down 이면 루프의 함수는 지금과 같고, trend == up 이면 루프에서 Open[i]Close[i] 를 바꾸어 조건을 만족시켰습니다. 왜냐하면 이 경우 바의 종가 는 이미 시가보다 낮으므로 그 차이는 마이너스 기호가 됩니다.