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

 
Catrock >> :

조건을 구현하는 방법을 알려주세요.-

만약(대기 중인 주문이 있는 경우) 우리는 이것 저것을 합니다.

 for ( int i= 0 ; i< OrdersTotal ();i++)
  {
   OrderSelect (i,SELECT_BY_POS);
   if (OrderType()== 2 || 3 || 4 || 5 ) // Есть ли отложники?
   {
   // Действия
   }
  }
 

감사합니다) 사실, 이것으로 상황이 해결되지 않았습니다. 질문 하나 더.

상황: 유형 5( Sell Stop )의 보류 중인 주문이 있었고 가격이 도달하여 시장 주문이 되었습니다. 주문 유형이 변경되었습니까? 즉, 5의 특성이 변경되었습니까?

위의 조합을 삽입할 때 "작업"은 여전히 미결 주문의 특성을 변경하지만 변경해서는 안 됩니다. 이 때문에 보류 중인 주문에만 조치가 적용되도록 조건을 만들고 싶습니다.

         if ( OrdersTotal ())                                              // Если стоят ордера в списке
         {
             OrderSelect ( 0 , SELECT_BY_POS);                             // Выбираем первый
             if (OrderType()==( 2 || 3 || 4 || 5 ))                              // Если он не открытый то можем модифицировать
             {
               Alert ( "Что то делаю с ордером =)" );
               if (PricePointNew>PricePointOld)
               OrderModify( Ticket, PricePointNew- 5 * 0.0001 , PriсeStopNew+ 8 * 0.0001 , PricePointNew-Profit* 0.0001 , 0 , Green );
                else Print ( "OrderModify 1 вернул ошибку - " , GetLastError ());
            
               if (PricePointNew<PricePointOld)
               OrderModify( Ticket, PricePointNew- 5 * 0.0001 , PriсeStopNew+ 8 * 0.0001 , PricePointNew-Profit* 0.0001 , 0 , Green );
               else Print ( "OrderModify 2 вернул ошибку - " , GetLastError ());
            
               if (PriсeStopNew>PriсeStopOld && (PriсeStopNew-PriсeStopNew)<(Stop* 0.0001 ))
               OrderModify( Ticket, PricePointNew- 5 * 0.0001 , PriсeStopNew+ 8 * 0.0001 , PricePointNew-Profit* 0.0001 , 0 , Green );
               else Print ( "OrderModify 3 вернул ошибку - " , GetLastError ());
         
             if (PriсeStopNew<PriсeStopOld)
             OrderModify( Ticket, PricePointNew- 5 * 0.0001 , PriсeStopNew+ 8 * 0.0001 , PricePointNew-Profit* 0.0001 , 0 , Green );
             else Print ( "OrderModify 4 вернул ошибку - " , GetLastError ());         
            }
         }
         else                               // Если нет ордеров, то ставим
         {
            f = OrderSend ( Symbol (), 5 , 0.01 ,(PricePointNew- 5 * Point * 10 ) , 1 ,(PriсeStopNew+ 8 * Point * 10 ) ,(PricePointNew-Profit* Point * 10 ));
            OrderSelect ( 0 , SELECT_BY_POS);
            Ticket =  OrderTicket();
 
Sellstop이 실행되면 유형 1이되고 평신도가 아닌 시장 유형이됩니다.
 

내가 이해할 수없는

나는 시간을 배열에 넣고 인쇄는 0 =(

 for (i= 0 ; i<= 10 ; i++)
   {
     datetime Array[i] = iTime( NULL , 0 ,i);
     Print ( "Время: " ,Array[i]);
   }
출력물은 0을 출력합니다... 무엇이 잘못되었나요?
 
그런 다음 멈췄습니다)) 테스터에서 시각화로 EA를 실행했는데 시장 순서가 어쨌든 변경되었지만 이유가 명확하지 않습니다.
 
Noterday >> :

내가 이해할 수없는

나는 시간을 배열에 넣고 인쇄는 0 =(

출력물은 0을 출력합니다... 무엇이 잘못되었나요?

배열은 루프 외부에서 선언되어야 하고 크기는 고정되어야 합니다(또는 표시기 배열에 대해 이야기하고 있다는 표시).

 datetime Array[ 10 ];
int start() 
{
for ( int i= 0 ; i<= 10 ; i++)
   {
     Array[i] = iTime( NULL , 0 ,i);
     Print ( "Время: " ,Array[i]);
   }


}
 
Catrock >> :
Тогда я застрял)) Запускаю эксперт в тестере с визуализацией, рыночный ордер все равно меняется, непонятно почему.. Нагородил большой код, видимо ошибка где то алгоритмическая.
시장 주문에서 정확히 무엇이 바뀌나요?? 달성하고자 하는 바를 보다 명확하게 말씀해 주십시오.
 
Techno >> :

배열은 루프 외부에서 선언되어야 하고 크기는 고정되어야 합니다(또는 표시기 배열에 대해 이야기하고 있다는 표시).

여전히 작동하지 않습니다.... iTime은 어떻게 배열에 시간을 기록합니까? 1970 또는 "yyyy:mm:dd hh:mm"의 초 단위
 
Noterday >> :
всё равно не работает.... как iTime записывает время в массив? В секундах о 1970 или "yyyy:mm:dd hh:mm"
이 디자인을 사용하면 몇 초 만에 그렇습니다. 모든 것이 작동합니다. 코드의 이 부분만 컴파일하고 테스트합니다.
 

현재 시장 주문에서 이익실현 및 손절매 수준이 변경되고 있습니다. 하지만 그렇게 해서는 안 됩니다.

변경 기능은 보류 중인 주문 에 대해서만 내 시스템에서 사용할 수 있습니다. 주문이 시장가 주문이 되면 변경이 허용되지 않습니다. EA는 총 하나의 주문을 사용합니다.