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

[삭제]  

뭔가 정리된 것 같습니다.... 상황은 다음과 같습니다. 전역 변수 double Delete_Level이 선언되었습니다. if 문의 본문에서 새 값이 할당됩니다.

Delete_Level = MA3

그리고 본문을 떠날 때 전역 수준의 Delete_Level 값은 변경되지 않습니다. 질문: if 문의 본문을 종료할 때 전역 변수 Delete_Level의 값 을 변경하는 방법은 무엇입니까?

 
vovan-gogan :

미안하지만 어떤 식 으로든 더 쉽습니까?) 오류가 무엇인지 이해하도록 도와주세요.


절대적으로 진정한 평등은 결코 일어나지 않을 것이라는 사실 - 이것은 특정 프로세스, 작업 등에 대한 특정 오류와 허용 오차가 있는 실제 세계, 실제 세계입니다. "기본"을 배우십시오 ... :-P 더 쉽게 - 아무데도 없습니다. 당신이 추천한 대로 작성 하십시오 - 조건이 작동 했습니까? 흥미롭네요. 덕분에.


 
vovan-gogan :

뭔가 정리된 것 같습니다.... 상황은 다음과 같습니다. 전역 변수 double Delete_Level이 선언되었습니다. if 문의 본문에서 새 값이 할당됩니다.

그리고 본문을 떠날 때 전역 수준의 Delete_Level 값은 변경되지 않습니다. 질문: if 문의 본문을 종료할 때 전역 변수 Delete_Level의 값을 변경하는 방법은 무엇입니까?


어떻게 안 바뀌나요? 물론 그렇습니다. 코드를 인쇄물로 오버레이하고 시각화 모드의 단계별 테스트인 F12를 통해 "저널" 탭을 확인합니다.
 
sergeev :

MQL을 이해하고 이해한 날짜는 언제입니까?
주문하기 전에 확인하고 싶습니다. 세션이 10-30에 시작되고 10-35에 매수 주문을 여는 모든 조건이 충족되지만 현재 시간 이 10-45보다 크거나 같을 때까지 배치되어서는 안 된다고 가정해 보겠습니다.
[삭제]  
Roman. :

어떻게 안 변해? 물론 그렇습니다.


이와 같이. 예를 들어 Expert Advisor에서 먼저 전역 변수 int Orders를 선언한 다음 보류 중인 주문을 하는 경우 int Orders 값이 아래와 같이 변경되어야 합니다.

 int Orders;
if (MA2_2<MA1_2 && MA2_1>MA1_1)//пересечение МА
{
   if ( OrdersTotal ()>= 1 )
   {
   return ;
   }
         SL = 30;
         TP = 12;
         S_Price = Low[ 1 ] - 1 * Point ;
         if ( OrderSend ( Symbol (), OP_SELLSTOP, Lots, S_Price, 0 , SL, TP, "My order" , Magic)> 0 )
            {
               Orders++;
               Alert ( "Ордер выставлен. Orders =" ,Orders );
            }
}           

그러나 주문에는 변경 사항이 없습니다. 그리고 "주문이 접수되었습니다. 주문 =1" 이라는 메시지가 표시될 때마다

 
vovan-gogan :


이와 같이. 예를 들어 Expert Advisor에서 먼저 전역 변수 int orders를 선언한 다음 보류 중인 주문을 하는 경우 int orders의 값이 아래와 같이 변경되어야 합니다.

그러나 주문에는 변경 사항이 없습니다. 그리고 "주문이 접수되었습니다. 주문 =1" 이라는 메시지가 표시될 때마다


거기에는 전역 변수가 필요하지 않지만 지역 변수 f-ii 시작이 필요합니다. 그래서 시도

 int start()                             // Спец. функция start
  {
     int Orders= 0 ;
     if (MA2_2<MA1_2 && MA2_1>MA1_1)   //пересечение МА
        {
           if ( OrdersTotal ()>= 1 ) return ( 0 );   
          SL = 30 ;
          TP = 12 ;
          S_Price = Low[ 1 ] - 1 * Point ;
           if ( OrderSend ( Symbol (), OP_SELLSTOP, Lots, S_Price, 0 , SL, TP, "My order" , Magic)> 0 )
            {
               Orders++;
               Alert ( "Ордер выставлен.Orders = " ,Orders );
            }
        }   
       Alert ( "Ордеров нет. Orders = " ,Orders );    
//----------------------------------------------------------------  
   return ;                             // Выход из start()
  }
[삭제]  
Roman. :


거기에는 전역 변수가 필요하지 않지만 지역 변수 f-ii 시작이 필요합니다. 그래서 시도


내 예에서도 마찬가지 아닌가요? 차이점이 뭐야? 내가 시작 기능을 추가하지 않는 한.
 
vovan-gogan :

내 예에서도 마찬가지 아닌가요? 차이점이 뭐야? 내가 시작 기능을 추가하지 않는 한.

당신은 내 버전을 시도합니다.
[삭제]  
Roman. :

당신은 내 버전을 시도합니다.

그러나 나는 시도하는 차이를 보지 못합니다. 내가 뭘 잘못했는지 말해주세요.
[삭제]  
기간이 M30인 차트(실시간)를 열고 매개변수 int shift=iBarShift(NULL , PERIOD_M5 ,some_time); 시프트는 원래대로 되지만 M30 주기로 테스터를 통해 동일한 인디케이터를 실행하면 시프트가 계산되지 않습니까?