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

 
Pyro :

안녕 모두. 기록에서 내 검색은 많은 양을 반환하지 않습니다. 그게 필요 할까?


프로그램에 의해 로트가 변경되었지만 로트 0.1을 반환합니다. 티켓이 올바르게 표시됩니다(변경). 벌레? 특징?


... 모든 것에서 "버그 및 기능"을 찾지 마십시오. 때로는 가슴이 열리기도 합니다... :-)

주문 주기는 어디인가요???

 
 if ( OrdersHistoryTotal () != 0 )
   {
     for ( int counter = OrdersHistoryTotal ()- 1 ; counter >= 0 ; counter--)
      {
       OrderSelect (counter, SELECT_BY_POS, MODE_HISTORY);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         {
           if ( OrderType () == OP_BUY || OrderType () == OP_SELL)   
             Comment ( "\n\n\n" , OrderLots (), " " , OrderTicket ());                        
         }
      }
   }
 
Pyro :

안녕 모두. 기록에서 내 검색은 많은 양을 반환하지 않습니다. 그게 필요 할까?


프로그램에 의해 로트가 변경되었지만 로트 0.1을 반환합니다. 티켓이 올바르게 표시됩니다(변경). 벌레? 특징?


코드의 아날로그를보고 편집하고 시도하십시오.

 //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0 ; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0 ;   // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0 ,
Time_at_History_Previos = 0 ;  
    
 
 if ( OrdersHistoryTotal () != 0 )
   {
     for ( int counter = OrdersHistoryTotal ()- 1 ; counter >= 0 ; counter--)
      {
       OrderSelect (counter, SELECT_BY_POS, MODE_HISTORY);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         {
           if ( OrderType () == OP_BUY || OrderType () == OP_SELL)
            {
             if ( OrderProfit () < 0 ) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit ();
                 Sum_Loss=Sum_Loss+lastLoss;   // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime ();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if (Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                 //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                 if ( OrderProfit () >= 0 )
                   break ;
               }
            }
         }
      }
   }
 

로마 인


나는 사이클이 필요하지 않습니다. 나는 마지막 주문을 많이 얻어야 하고, 무슨 일이 있어도 필터링이 필요하지 않습니다. LOT 예제에는 아무것도 없습니다. 나는 길을 잃었다.

 
Pyro :

로마 인


나는 사이클이 필요하지 않습니다. 나는 마지막 주문을 많이 얻어야 하고, 무슨 일이 있어도 필터링이 필요하지 않습니다. LOT 예제에는 아무것도 없습니다. 나는 길을 잃었다.


헐 예전글 수정했는데..
 
나는 그것을 짧게 이해하지 않았다. 귀하와 같은 일부 기준으로 필터링해야 하는 경우 주기가 필요합니다. 내 작업은 더 간단합니다. 기록에서 마지막 주문을 가져오는 것입니다. 그것은 정의상 폐쇄적이며 정의상 시장에 열린 포지션이 없습니다. 보류 중인 주문 은 사용되지 않습니다. 즉, 마지막 숫자는 확실히 시장 숫자가 될 것입니다. 티켓은 올바르게 반환되지만 제비는 반환되지 않습니다.
 
Pyro :
나는 그것을 짧게 이해하지 않았다. 귀하와 같은 일부 기준으로 필터링해야 하는 경우 주기가 필요합니다. 내 작업은 더 간단합니다. 기록에서 마지막 주문을 가져오는 것입니다. 이는 정의상 폐쇄형이며 정의상 시장에 공개 포지션이 없습니다. 티켓은 올바르게 반환되지만 제비는 반환되지 않습니다.

소유하다! 검색을 사용하는 방법을 배우십시오! :-)
 
알아주셔서 감사합니다 :) 잼은 달랐습니다.
 
MK07 :

도와주셔서 감사합니다. Set if (D_sig==0) { signal command ; } "계단"은 작아졌지만 여전히 존재하며 어떻게 형성되었는지 명확하지 않습니다.

그리고 MathAbs는 신호 라인이 절대적으로 동일할 확률이 무시할 수 있기 때문에 비교를 위한 "회랑"을 갖기 위해 그것을 넣었습니다.

내 문제에 대해 다른 생각이 있는 사람이 있습니까?


이렇게 작성하면 모든 것이 표시됩니다 D_Sig는 댓글에 표시됩니다

         D_sig= MathAbs (Signal1Buffer[ 0 ]-Signa13Buffer[ 0 ]);                               // разница между сигнальными линиями 1-ого и 3-ого MACD на
                                                                                         // нулевом баре
if (D_sig== 0 )  {   D_sig_Last=D_sig; }
      
//       break;          
             
           
              
         
         j++;
         
}             
     
       Comment ( "\n" , " Баров = " , WindowBarsPerChart ()- 1 , 
               "\n" , " Macd1Buffer = " , DoubleToStr (Macd1Buffer[ 0 ], 4 ),
               "\n" , " Signal1Buffer = " , DoubleToStr (Signal1Buffer[ 0 ], 4 ),
               "\n" , " Macd3Buffer = " , DoubleToStr (Macd3Buffer[ 0 ], 4 ),
               "\n" , " Signa13Buffer = " , DoubleToStr (Signa13Buffer[ 0 ], 4 ),
               "\n" , " D_sig = " , DoubleToStr (D_sig, 4 ));
 
고문의 이름을 형성하는 "가장 좋아하는 원칙"을 알려주십시오. 따라서 행동 원칙이 버전 등을 고려하도록하십시오.
 

안녕 모두.

bool NewBar() 함수가 있는데 bool NewZZ() 함수 를 만들어주세요. 새로운 ZigZag 니가 나타날 때 -> true.