오류, 버그, 질문 - 페이지 857 1...850851852853854855856857858859860861862863864...3184 새 코멘트 Yedelkin 2012.10.14 12:05 #8561 G001 : 죄송합니다. 무슨 말을 해야 할지 모르겠고, 문제가 어디에 있는지도 모르고, 내가 필요한 작업을 수행하지 않는다는 것을 압니다. 가장 간단한 방법으로 가보겠습니다. 코드의 이 부분에서 각 중요한 줄 다음에 Print()를 작성하고 무엇이 인쇄 되는지 확인합니다. Andriy Voitenko 2012.10.14 12:07 #8562 //+------------------------------------------------------------------+ //| CalcMartin.mq5 | //| avoitenko | //| https://www.mql5.com/en/users/avoitenko | //+------------------------------------------------------------------+ #property copyright "avoitenko" #property link "https://www.mql5.com/en/users/avoitenko" #property version "1.00" #property script_show_inputs input bool Martingale=true; input uint MaxLossTrade=5; input double StartLot=0.1; input double LotMultiply=2; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { double ResultLot=StartLot; //----- Martingale if(Martingale) { HistorySelect(0,TimeCurrent()); int Total=HistoryDealsTotal(); int Losses=0; // Number of losses orders without a break for(int i=Total-1;i>=0;i--) { ulong Ticket=HistoryDealGetTicket(i); if((HistoryDealGetInteger(Ticket,DEAL_TYPE)==DEAL_TYPE_BUY || HistoryDealGetInteger(Ticket,DEAL_TYPE)==DEAL_TYPE_SELL) && (HistoryDealGetInteger(Ticket,DEAL_ENTRY)==DEAL_ENTRY_INOUT || HistoryDealGetInteger(Ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT)) { double profit=HistoryDealGetDouble(Ticket,DEAL_PROFIT)+HistoryDealGetDouble(Ticket,DEAL_SWAP); if(profit>=0) break; Losses++; } if(Losses<=MaxLossTrade)ResultLot=(StartLot*MathPow(LotMultiply,Losses)); else {ResultLot=StartLot;break;} } } //----- Print("Result Lot = ",ResultLot); } //+------------------------------------------------------------------+ [삭제] 2012.10.14 12:32 #8563 avoitenko : 대단히 감사합니다. 제 실수를 이해합니다. 어리 석음에 대해 죄송합니다. [삭제] 2012.10.14 22:38 #8564 일 년과 한 달의 일 수를 구하는 방법은 무엇입니까? 이거 처방만 하면 1월이 31이면 월수가 있는건가요 등등? 그럼 올해는? Mykola Demko 2012.10.15 12:33 #8565 FiftyStars : 일 년과 한 달의 일 수를 구하는 방법은 무엇입니까? 1월이 31일 경우 월수와 같이? 그럼 올해는? 4로 나누어 떨어지면 높은 것이고 나머지는 365입니다. Ilyas 2012.10.15 12:45 #8566 Urain : 4로 나누어 떨어지면 높은 것이고 나머지는 365입니다. 그러나 예외가 있습니다. .. 고려할 수는 없지만 :) Dimitar Manov 2012.10.15 12:49 #8567 Urain : 4로 나누어 떨어지면 높은 것이고 나머지는 365입니다. 2100도 4로 나누어 떨어지지만 365가 됩니다. 1900도... Andriy Voitenko 2012.10.15 13:09 #8568 mql5 : 그러나 예외가 있습니다. .. 고려할 수는 없지만 :) 다음은 예외가 있는 코드이지만 우리 시대에만 해당됩니다. 함수는 연도가 윤년이면 true를 반환합니다. bool IsLeapYear( int year) { return ( MathMod (year, 4 )== 0 && ( MathMod (year, 100 )!= 0 || MathMod (year, 400 )== 0 )); } Mykola Demko 2012.10.15 13:55 #8569 avoitenko : 다음은 예외가 있는 코드이지만 우리 시대에만 해당됩니다. 함수는 연도가 윤년이면 true를 반환합니다. 정확히는 다르게 했을텐데... 조건이 수렴되면 다음 검사는 더 이상 필요하지 않습니다. bool IsLeapYear( int year) { if (year% 4 != 0 ) return ( false ); else { if (year% 100 == 0 ) { if (year% 400 == 0 ) return ( true ); else return ( false ); } else return ( true ); } } 대부분의 년은 첫 번째 수표에서 거짓으로 나올 것입니다. 연도가 4로 나눌 수 있는 경우 100으로 나눌 수 있는지 확인하고 나머지 대부분은 나눌 수 없고 true를 종료합니다. 나눌 수 있으면 세 번째 조건인 연도가 400으로 나누어 떨어지는지 확인합니다. 따라서 세 가지 조건(통계적으로 중요하지 않으며 성능에 영향을 미치지 않음)에 대해 연도 중 최소한의 부분만 확인됩니다. 이러한 기능의 성능은 한 번의 검사 속도인 반면 두 가지 검사의 속도는 비슷합니다. 추신 및 전환하는 것이 더 낫다고 생각하는 일 수: int CountDayforMonth( int month, bool leapyear= false ) // количество дней в месяце { switch (month) { case 1 : return ( 31 ); case 2 : if (leapyear) return ( 29 ); else return ( 28 ); case 3 : return ( 31 ); case 4 : return ( 30 ); case 5 : return ( 31 ); case 6 : return ( 30 ); case 7 : return ( 31 ); case 8 : return ( 31 ); case 9 : return ( 30 ); case 10 : return ( 31 ); case 11 : return ( 30 ); case 12 : return ( 31 ); default : return ( 0 ); } } [삭제] 2012.10.15 15:10 #8570 Urain : 정확히는 다르게 했을텐데... 조건이 수렴되면 다음 검사는 더 이상 필요하지 않습니다. 대부분의 년은 첫 번째 수표에서 거짓으로 나올 것입니다. 연도가 4로 나눌 수 있는 경우 100으로 나눌 수 있는지 확인하고 나머지 대부분은 나눌 수 없고 true를 종료합니다. 나눌 수 있으면 세 번째 조건인 연도가 400으로 나누어 떨어지는지 확인합니다. 따라서 세 가지 조건(통계적으로 중요하지 않으며 성능에 영향을 미치지 않음)에 대해 연도 중 최소한의 부분만 확인됩니다. 이러한 기능의 성능은 한 번의 검사 속도인 반면 두 가지 검사의 속도는 비슷합니다. 나는 에서 멈췄다 int GetDaysInYear( int Year) export { bool Leap= false ; if (Year% 4 == 0 ) { if (Year% 100 == 0 ) { if (Year% 400 == 0 ) Leap= true ; } else Leap= true ; } if (Leap) return ( 366 ); else return ( 365 ); } 1...850851852853854855856857858859860861862863864...3184 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
대단히 감사합니다. 제 실수를 이해합니다.
어리 석음에 대해 죄송합니다.
일 년과 한 달의 일 수를 구하는 방법은 무엇입니까? 이거 처방만 하면 1월이 31이면 월수가 있는건가요 등등?
그럼 올해는?
일 년과 한 달의 일 수를 구하는 방법은 무엇입니까? 1월이 31일 경우 월수와 같이?
그럼 올해는?
4로 나누어 떨어지면 높은 것이고 나머지는 365입니다.
4로 나누어 떨어지면 높은 것이고 나머지는 365입니다.
2100도 4로 나누어 떨어지지만 365가 됩니다.
1900도...
그러나 예외가 있습니다. .. 고려할 수는 없지만 :)
다음은 예외가 있는 코드이지만 우리 시대에만 해당됩니다. 함수는 연도가 윤년이면 true를 반환합니다.
다음은 예외가 있는 코드이지만 우리 시대에만 해당됩니다. 함수는 연도가 윤년이면 true를 반환합니다.
정확히는 다르게 했을텐데... 조건이 수렴되면 다음 검사는 더 이상 필요하지 않습니다.
대부분의 년은 첫 번째 수표에서 거짓으로 나올 것입니다.
연도가 4로 나눌 수 있는 경우 100으로 나눌 수 있는지 확인하고 나머지 대부분은 나눌 수 없고 true를 종료합니다.
나눌 수 있으면 세 번째 조건인 연도가 400으로 나누어 떨어지는지 확인합니다.
따라서 세 가지 조건(통계적으로 중요하지 않으며 성능에 영향을 미치지 않음)에 대해 연도 중 최소한의 부분만 확인됩니다.
이러한 기능의 성능은 한 번의 검사 속도인 반면 두 가지 검사의 속도는 비슷합니다.
추신 및 전환하는 것이 더 낫다고 생각하는 일 수:
정확히는 다르게 했을텐데... 조건이 수렴되면 다음 검사는 더 이상 필요하지 않습니다.
대부분의 년은 첫 번째 수표에서 거짓으로 나올 것입니다.
연도가 4로 나눌 수 있는 경우 100으로 나눌 수 있는지 확인하고 나머지 대부분은 나눌 수 없고 true를 종료합니다.
나눌 수 있으면 세 번째 조건인 연도가 400으로 나누어 떨어지는지 확인합니다.
따라서 세 가지 조건(통계적으로 중요하지 않으며 성능에 영향을 미치지 않음)에 대해 연도 중 최소한의 부분만 확인됩니다.
이러한 기능의 성능은 한 번의 검사 속도인 반면 두 가지 검사의 속도는 비슷합니다.
나는 에서 멈췄다