안녕하세요.
그리고 이건 얼마에요? ... 이 정도면 파일로 나눌 수 없을 정도인가요?
- 2016.03.20
- www.mql5.com
안녕하세요.
예, 모든 것이 매우 간단합니다. 개별 기능을 정확하게 문서화하고 별도의 파일로 분리해야 합니다. 기본 파일이 즉시 축소되고 더 읽기 쉬워집니다.
나는 항상 하나의 mq4/mq5 파일과 클래스가 있는 많은 mqh 파일을 가지고 있으며 각 클래스에는 별도의 파일이 있습니다. 일반적으로 산업 개발에서 이것이 바로 그들이 하는 일입니다. 모든 것이 산재되어 있는 킬로미터 파일이 없습니다.
그리고 때때로 전체 어드바이저가 OnTick에 들어갈 때 걸작을 발견하지만 이 못생긴 시트에는 주문을 20번 여는 동일한 코드 조각이 있습니다. 즉시 토사백을 받고 싶다))
안녕하세요.
항상 일정하고 이 스타일로 절대 변경되지 않는 함수를 작성하지 마십시오.
void CloseOrders( int cmd) { for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) { if ( OrderSelect (i, SELECT_BY_POS )) { if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic) { if ( OrderType ()== OP_BUY && cmd== OP_BUY ) { if (! OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage,Blue)) { Print ( "Order BUY not close! Error = " , GetLastError ()); } } if ( OrderType ()== OP_SELL && cmd== OP_SELL ) { if (! OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage,Red)) { Print ( "Order SELL not close! Error = " , GetLastError ()); } } } } } }
간결하게 쓰세요. 어쨌든 아무도 쳐다보지도 않고 반만 줄이면 됩니다.
void CloseOrders( int cmd) { for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) { if ( OrderSelect (i, SELECT_BY_POS )) { if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic) { if ( OrderType ()== OP_BUY && cmd== OP_BUY ) { if (! OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage,Blue)) Print ( "Order BUY not close! Error = " , GetLastError ()); } if ( OrderType ()== OP_SELL && cmd== OP_SELL ) { if (! OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage,Red)) Print ( "Order SELL not close! Error = " , GetLastError ()); } }}}}
코드에 대해 지속적으로 주석을 달고, 이 코드 조각이 무엇을 담당하는지, 어렵지 않으며, 마무리할 때 항상 코드가 무엇인지 알게 될 것이고, 공부하는 시간을 줄일 수 있습니다.
항상 일정하고 이 스타일로 절대 변경되지 않는 함수를 작성하지 마십시오.
간결하게 쓰세요. 어쨌든 아무도 쳐다보지도 않고 줄도 절반만 씁니다.
코드에 대해 지속적으로 주석을 달고, 이 코드 조각이 무엇을 담당하는지, 어렵지 않으며, 마무리할 때 항상 코드가 무엇인지 알게 될 것이고, 공부하는 시간을 줄일 수 있습니다.
주석은 프로그램 텍스트의 절반을 차지해야 합니다.
항상 일정하고 이 스타일로 절대 변경되지 않는 함수를 작성하지 마십시오.
간결하게 쓰세요. 어쨌든 아무도 쳐다보지도 않고 줄도 절반만 씁니다.
코드에 대해 지속적으로 주석을 달고, 이 코드 조각이 무엇을 담당하는지, 어렵지 않으며, 마무리할 때 항상 코드가 무엇인지 알게 될 것이고, 공부하는 시간을 줄일 수 있습니다.
괄호를 재배열해도 헛소리가 줄어들지는 않습니다. 조언을 하기 전에 - 당신의 레벨을 최소한 평균으로 올리십시오.
주석은 프로그램 텍스트의 절반을 차지해야 합니다.
아니요, 그럼 바로 코드의 90%가 주석입니다. 동시에 더 많은 주석을 달 수 있도록 의미 없고 읽기 어려운 코드가 최대한 많이 필요합니다!
당신의 아이디어도 주목받을 가치가 있습니다. 토론을 위해 불러오세요
나는 오래전부터 묻고 싶었다. MKL5에서 포함된 파일, 클래스에서 지표 데이터를 얻는다면 최적화가 더 빨라질까요?
즉, EA 자체의 코드에서는 표시기 핸들이 호출되지 않습니다.