mql5 - 마지막 거래 이후 일정 시간 후 수직선 - 페이지 4

 
renatmt5 :
그건 그렇고, 당신이 추가 한 보호에는 다음과 같은 점이 있습니다. 올바른 값을 계산하기 전에 1-2분의 지연이 있기 때문에 변수가 0과 같으므로 빠른 업데이트를 위해 현재 시간 프레임을 다른 시간 프레임으로 전환합니다. 값은 즉시 다시 계산됩니다. 아마도 이 원칙에 따라 일종의 소프트웨어 목발을 만드는 것이 가능할까요?

나는 "목발"이라는 단어를 싫어합니다.


나는 이미 모든 것을 미리 생각했고 당신이 물은 것은 매우 좋습니다. void bool에서 LastProfitForPeriod를 만들어야 합니다. 그리고 오류가 있는 경우 - 예를 들어 날짜가 수신되지 않았거나 다른 것이 있으면 원 안에 false 등을 반환합니다.

즉, 1분의 손실도 없을 것입니다.

 

"거짓"이 나오면 시간을 재설정하십시오 .

   double profit_last_day= 0.0 ,profit_last_deal= 0.0 ;
   if (!LastProfitForPeriod(profit_last_day,profit_last_deal))
     {
      ExtLastMove= 0 ;
       return (rates_total);
     }

   Comment ( "Profit last day: " , DoubleToString (profit_last_day, 2 ), "\n" ,
           "Profit last deal: " , DoubleToString (profit_last_deal, 2 ));


버전 1.003

 
Vladimir Karputov :

나는 "목발"이라는 단어를 싫어합니다.


나는 이미 모든 것을 미리 생각했고 당신이 물은 것은 매우 좋습니다. void bool에서 LastProfitForPeriod를 만들어야 합니다. 그리고 오류가 있는 경우 - 예를 들어 날짜가 수신되지 않았거나 다른 것이 있으면 원 안에 false 등을 반환합니다.

즉, 1분의 손실도 없을 것입니다.

"목발"과 관련하여 - 예, 이 단어에서 프로그래밍에 대한 일종의 부주의한 태도가 있습니다. :)

네, 잃어버린 1분의 효과는 스크립트의 v.3에서 사라졌습니다.

 
renatmt5 :

"목발"과 관련하여 - 예, 이 단어에서 프로그래밍에 대한 일종의 부주의한 태도가 있습니다. :)

네, 잃어버린 1분의 효과 는 스크립트의 v.3에서 사라졌습니다.

지표입니다 :)

 
Vladimir Karputov :

지표입니다 :)

네, 맞습니다. 여전히 혼란스럽습니다.

 

마지막 거래 마감과 관련된 시간 오프셋을 계산하기 위한 블록이 추가되었습니다. last_time 및 n을 사용하여 나중에 줄을 오프셋하려고 하면 컴파일할 때 오류가 발생합니다.

.....

                    {

                     last_time=deal_time;

                     profit_last_deal=full_profit;

                    }

                 }

        }

     }

//-------------//     

// MY CODE     //   

//-------------//

if (profit_last_day<= 0 && profit_last_deal<= 0 ){ uint n= 60 * 60 * 24 ;}

else if (profit_last_day> 0 && profit_last_deal<= 0 ){ uint n= 60 * 60 * 2 ;}

else { uint n= 60 * 60 * 1 ;}

//-------------//     

// MY CODE END //   

//-------------//

   return ( true );

  }

.......
 
어떻게 든 압축되지 않은 코드 스 니펫을 붙여 넣습니다. :)
 
ObjectCreate(chart_ID, name, OBJ_VLINE , sub_window, time, 0)를 생성할 때, 내가 이해하는 바와 같이 TimeCurrent()가 아닌 last_time이 되도록 시간 값을 변경해야 합니다. n과 같습니다.
아니면 주어진 막대 수만큼 개체를 앞/뒤로 이동하는 기능이 있습니까? 어떻게 더 나은가요? 그리고 나서 고백합니다. 지금까지 저의 독립적인 시도는 성공하지 못했습니다.
 
renatmt5 :
ObjectCreate(chart_ID, name, OBJ_VLINE , sub_window, time, 0)를 생성할 때, 내가 이해하는 것처럼 TimeCurrent()가 아니라 last_time이 기간만큼 미래에 대한 오프셋이 있는 last_time 이 되도록 시간 값을 변경해야 합니다. n과 같습니다.
아니면 주어진 막대 수만큼 개체를 앞/뒤로 이동하는 기능이 있습니까? 어떻게 더 나은가요? 그리고 나서 고백합니다. 지금까지 저의 독립적인 시도는 성공하지 못했습니다.

라인은 OnInit()에서 한 번 생성됩니다.

그런 다음 그녀는 움직입니다 - VLineMove

 

코드 조각의 마지막 줄(특히 시간=0)을 변경해야 한다는 것을 올바르게 이해하고 있습니까?

 //+------------------------------------------------------------------+ 
//| Move the vertical line                                           | 
//+------------------------------------------------------------------+ 
bool VLineMove( const long    chart_ID= 0 ,   // chart's ID 
               const string name= "VLine" , // line name 
               datetime      time= 0 )       // line time 


아니면 VLineMove가 여전히 어딘가에서(예: OnCalculate 에서) 시작되어야 하고 들어오는 매개변수를 전달해야 하는 함수입니까?
완전 헷갈려요 :)