안녕하세요 카메오펙스입니다. 친절한 답변 감사합니다. 이 코딩 시스템은 매우 간단하고 쉽습니다. 모두 MetaEditor에서 수동으로 수행됩니다. 실제로 시스템은 대용량 프로그램을 쉽고 빠르게 개발할 수 있도록 설계되고 있습니다. 또한 시스템은 유연하고 안정적이어야 합니다. 친애하는!
안녕하세요 아이스 이것은 놀라운 작품입니다..... 포럼이 어떻게 당신에게 충분히 감사할 수 있습니까? 감사합니다. 힙, 힙, 만세. 또한 제가 제기한 많은 질문을 설명하는 동안 당신이 인내심을 가졌음을 인정합니다. 고마워 오늘은 작동하지 않는 프로그램인 1_20[1]과 이 프로그램을 문별로 비교하겠습니다. 두 사람에게서 배울 것이 많습니다. 이 프로그램의 개발 초기에 이 프로그램의 유연성으로 기능을 추가할 수 있다고 언급했습니다. 기능은 표시기, 자금 관리, 포지션 스태킹, 보류 중인 주문 수정 등이 될 수 있습니다. 거래가 청산되면 현재 막대에서 더 이상 거래가 실행되지 않는 기능을 추가할 수 있습니까? 이것은 포럼의 일부 사람들에게는 문제가 아닐 수도 있지만 청산 후 시스템이 현재 막대에서 즉시 거래되지 않는 옵션으로 백테스트하고 싶습니다. 가능합니까? 여기 있어줘서 고마워. 잠시만 안녕.
하이 아이스 비교에 약간의 미묘한 변화가 있습니다. 나는 그것에 짧은 시간 동안 일을 완료하지 않았습니다. 그러나 눈에 띄는 차이점은 iNewBar()에 있습니다. iNewBar()를 제거하고 iFirstRun 변수를 iTime_0으로 바꾸면 ( ( iNewBar () ==TRUE) || (iFirst == 1 ) ) 프로그램 방정식에서 제외됩니다. iSignalOpen은 더 빠른 실행으로 단순화됩니다. 훌륭한 일. 건배 <수정됨> 위의 내용은 iSignalClose에 대해서도 동일함을 증명합니다. 프로그램을 통과하는 제어 를 이해하기가 매우 쉽습니다. 고맙습니다.
1. 전역 변수 "int iTradeBarOnce = 1 ;" "Data : Input" 도메인에 추가되었습니다. 2. "Data : Buffer" 도메인이 생성되었습니다. 3. "Data : Buffer" 도메인에 글로벌 변수 "int iTradeBarTime"이 추가되었습니다. 4. 빈 함수 "iReserved_1 ()"이 추가되었습니다. 5. "iSignalOpen()" 기능이 변경되었습니다. 6. "iTryClose()" 기능이 변경되었습니다.
노트:
1. 글로벌 변수 "int iTradeBarOnce"는 동일한 바에서 반복 거래를 허용/금지합니다. 2. 이 변수의 값 "0"은 동일한 막대에서 반복 거래를 허용하고 값 "1"은 금지합니다. 3. 글로벌 변수 "int iTradeBarTime"은 "iTryClose()" 함수에서 거래된 바의 개장 시간 을 전송합니다. 4. "iSignalOpen()" 함수는 이 값을 받아 반복 거래를 제어하는 데 사용합니다. 5. "TRUE" 및 "FALSE" 대신 "1" 및 "0" 값을 사용하고 싶습니다. 6. 다음 명령문은 동일하지만 먼저 더 빠르게 작동합니다.
안녕하세요 카메오펙스입니다.
친절한 답변 감사합니다.
이 코딩 시스템은 매우 간단하고 쉽습니다.
모두 MetaEditor에서 수동으로 수행됩니다.
실제로 시스템은 대용량 프로그램을 쉽고 빠르게 개발할 수 있도록 설계되고 있습니다.
또한 시스템은 유연하고 안정적이어야 합니다.
친애하는!
이것은 놀라운 작품입니다..... 포럼이 어떻게 당신에게 충분히 감사할 수 있습니까? 감사합니다. 힙, 힙, 만세.
또한 제가 제기한 많은 질문을 설명하는 동안 당신이 인내심을 가졌음을 인정합니다. 고마워
오늘은 작동하지 않는 프로그램인 1_20[1]과 이 프로그램을 문별로 비교하겠습니다. 두 사람에게서 배울 것이 많습니다.
이 프로그램의 개발 초기에 이 프로그램의 유연성으로 기능을 추가할 수 있다고 언급했습니다. 기능은 표시기, 자금 관리, 포지션 스태킹, 보류 중인 주문 수정 등이 될 수 있습니다. 거래가 청산되면 현재 막대에서 더 이상 거래가 실행되지 않는 기능을 추가할 수 있습니까? 이것은 포럼의 일부 사람들에게는 문제가 아닐 수도 있지만 청산 후 시스템이 현재 막대에서 즉시 거래되지 않는 옵션으로 백테스트하고 싶습니다. 가능합니까?
여기 있어줘서 고마워.
잠시만 안녕.
하이 아이스
비교에 약간의 미묘한 변화가 있습니다. 나는 그것에 짧은 시간 동안 일을 완료하지 않았습니다. 그러나 눈에 띄는 차이점은 iNewBar()에 있습니다. iNewBar()를 제거하고 iFirstRun 변수를 iTime_0으로 바꾸면
( ( iNewBar () ==TRUE) || (iFirst == 1 ) ) 프로그램 방정식에서 제외됩니다. iSignalOpen은 더 빠른 실행으로 단순화됩니다.
훌륭한 일.
건배
<수정됨>
위의 내용은 iSignalClose에 대해서도 동일함을 증명합니다. 프로그램을 통과하는 제어 를 이해하기가 매우 쉽습니다.
고맙습니다.
안녕하세요 아이스
iTryOpen 및 iTryClose에서 미묘한 차이점을 하나 더 찾았습니다. 명백한 영향이 없습니다. 그러나 'else-if' 연산자에 대해서는 명확하게 읽을 것입니다.
다시 한 번 감사합니다.
내일 다시 오십시오.
건배
////////////////////////////////////////////////////////////////////< 1> // < Program : Property > //< > // #define 1 " " //< > // #define 2 " " //< > // </Program : Property > //< > // //< > // < Program : Content > //< > // //< > // < Structure 18 elements in 4 domains > //< > // < 1. Data 9 elements in 2 domains /> //< > // < 2. Code 9 elements in 2 domains /> //< > // </Structure 18 elements in 4 domains > //< > // //< > // < 1. Data 9 = 4 i 3 d - s > //< > // < 1.1. Input 8 = 5 i 3 d - s /> //< > // < 1.2. Buffer 1 = 1 i - d - s /> //< > // </1. Data 9 = 4 i 3 d - s > //< > // //< > // < 2. Code 9 / - i 80 l 3 o > //< > // < 2.1. Interface 6 / - i 69 l 3 o /> //< > // < 2.2. Special 3 / - i 11 l - o /> //< > // </2. Code 9 / - i 80 l 3 o > //< > // //< > // </Program : Content > //< >
////////////////////////////////////////////////////////////////////< 2> // < 1.1. Data : Input > //< > // //< > // < 1.1. Input 8 = 5 i 3 d - s > //< > // < 1. Strategy 4 = 2 i 2 d - s /> //< > // < 2. Trading 4 = 3 i 1 d - s /> //< > // </1.1. Input 8 = 5 i 3 d - s > //< > // //< > // < 1.1.1. Strategy 4 >=====================================//< > int iBaseLag = 20 ; //< > int iBaseBar = 1 ; //< > double dFactorTP = 1.0 ; //< > double dFactorSL = 2.0 ; //< > // </ 1.1.1. Strategy 4 >=====================================//< > // //< > // < 1.1.2. Trading 4 >======================================//< > int iTradeBarOnce = 1 ; //< > int iSlippage = 1 ; //< > int iMagic = 1 ; //< > double dLots = 0.1 ; //< > // </ 1.1.2. Trading 4 >======================================//< > // //< > // //< > // </1.1. Data : Input > //< >
////////////////////////////////////////////////////////////////////< 3> // < 1.2. Data : Buffer > //< > // //< > // < 1.2. Buffer 1 = 1 i - d - s > //< > // < 1. Flags 1 = 1 i - d - s /> //< > // </1.2. Buffer 1 = 1 i - d - s > //< > // //< > // < 1.2.1. Flags 1 >========================================//< > int iTradeBarTime = EMPTY ; //< > // </ 1.2.1. Flags 1 >========================================//< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </1.2. Data : Buffer > //< >
////////////////////////////////////////////////////////////////////< 4> // < 2.1. Code : Interface > //< > // //< > // < 2.1. Interface 6 / - i 69 l 3 o > //< > // < 1. iReserved_1 - i - l - o /> //< > // < 2. iSignalOpen - i 17 l 1 o /> //< > // < 3. iSignalClose - i 15 l 1 o /> //< > // < 4. iGetTicket - i 7 l 1 o /> //< > // < 5. iTryOpen - i 15 l - o /> //< > // < 6. iTryClose - i 15 l - o /> //< > // </2.1. Interface 6 / - i 69 l 3 o > //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </2.1. Code : Interface > //< >
////////////////////////////////////////////////////////////////////< 5> // < 2.1.1. Code : Interface : iReserved_1 > //< > //int iReserved_1 () // - i - l - o //< > //{ //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > //} //< > // </2.1.1. Code : Interface : iReserved_1 > //< >
////////////////////////////////////////////////////////////////////< 6> // < 2.1.2. Code : Interface : iSignalOpen > //< > int iSignalOpen () // - i 17 l 1 o //< > { //< > if ( iTradeBarTime == iTime ( 0 , 0 , 0 ) ) //< > if ( iTradeBarOnce == 1 ) return ( EMPTY ) ; //< > // //< > static int iTime_0 = EMPTY ; //< > if ( iTime_0 < iTime ( 0 , 0 , 0 ) ) //< > { iTime_0 = iTime ( 0 , 0 , 0 ) ; //< > iTradeBarTime = EMPTY ; //< > static double dHighest , dLowest ; //< > dHighest = High [ iHighest ( 0 , 0 , MODE_HIGH , //< > iBaseLag , iBaseBar ) ] ; //< > dLowest = Low [ iLowest ( 0 , 0 , MODE_LOW , //< > iBaseLag , iBaseBar ) ] ; //< > } // if //< > double dAsk = MarketInfo ( Symbol () , MODE_ASK ) ; //< > double dBid = MarketInfo ( Symbol () , MODE_BID ) ; //< > if ( dAsk > dHighest ) return ( OP_BUY ) ; //< > if ( dBid < dLowest ) return ( OP_SELL ) ; //< > return ( EMPTY ) ; //< > } //< > // </2.1.2. Code : Interface : iSignalOpen > //< >
////////////////////////////////////////////////////////////////////< 7> // < 2.1.3. Code : Interface : iSignalClose > //< > int iSignalClose () // - i 15 l 1 o //< > { //< > static int iTime_0 = EMPTY ; //< > if ( iTime_0 < iTime ( 0 , 0 , 0 ) ) //< > { iTime_0 = iTime ( 0 , 0 , 0 ) ; //< > static double dATR , dProfit , dLoss ; //< > dATR = iATR ( 0 , 0 , iBaseLag , iBaseBar ) ; //< > } // if //< > // //< > double dDelta = OrderOpenPrice () - OrderClosePrice () ; //< > // //< > if ( OrderType () == OP_BUY ) //< > { dProfit = -dDelta ; dLoss = dDelta ; } //< > else if ( OrderType () == OP_SELL ) //< > { dProfit = dDelta ; dLoss = -dDelta ; } //< > else return ( EMPTY ) ; //< > // //< > if ( dProfit > dATR * dFactorTP ) return ( TRUE ) ; //< > if ( dLoss > dATR * dFactorSL ) return ( TRUE ) ; //< > return ( EMPTY ) ; //< > } //< > // </2.1.3. Code : Interface : iSignalClose > //< >
////////////////////////////////////////////////////////////////////< 8> // < 2.1.4. Code : Interface : iGetTicket > //< > int iGetTicket () // - i 7 l 1 o //< > { //< > for ( int i = OrdersTotal () - 1 ; i >= 0 ; i -- ) //< > { //< > if ( OrderSelect ( i , SELECT_BY_POS ) == TRUE ) //< > if ( OrderMagicNumber () == iMagic ) //< > return ( OrderTicket () ) ; //< > } // for //< > return ( EMPTY ) ; //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > } //< > // </2.1.4. Code : Interface : iGetTicket > //< >
////////////////////////////////////////////////////////////////////< 9> // < 2.1.5. Code : Interface : iTryOpen > //< > int iTryOpen () // - i 15 l - o //< > { //< > int iCommand = iSignalOpen () ; //< > if ( iCommand == EMPTY ) return ; //< > if ( iCommand == OP_BUY ) //< > { string sType = "Buy" ; int iColor = Blue ; } //< > else { sType = "Sell" ; iColor = Red ; } //< > // //< > if ( iCommand == OP_BUY ) int iMode = MODE_ASK ; //< > else iMode = MODE_BID ; //< > double dPrice = MarketInfo ( Symbol () , iMode ) ; //< > // //< > OrderSend ( Symbol () , iCommand , dLots , //< > NormalizeDouble ( dPrice , Digits ) , //< > iSlippage , 0 , 0 , "" , iMagic , 0 , iColor ) ; //< > // //< > int iTrap = GetLastError () ; //< > if ( iTrap == 0 ) //< > { Alert ( sType , " Was a Big Success" ) ; } //< > else { Alert ( sType , " open exception " , iTrap ) ; } //< > } //< > // </2.1.5. Code : Interface : iTryOpen > //< >
////////////////////////////////////////////////////////////////////< 10> // < 2.1.6. Code : Interface : iTryClose > //< > int iTryClose () // - i 15 l - o //< > { //< > int iCommand = iSignalClose () ; //< > if ( iCommand == EMPTY ) return ; //< > if ( OrderType () == OP_BUY ) //< > { string sType = "Buy" ; int iColor = Red ; } //< > else { sType = "Sell" ; iColor = Blue ; } //< > // //< > if ( OrderProfit () > 0 ) string sAct = "Take" ; //< > else sAct = "Stop" ; //< > double dPrice = OrderClosePrice () ; //< > // //< > OrderClose ( OrderTicket () , OrderLots () , //< > NormalizeDouble ( dPrice , Digits ) , //< > iSlippage , iColor ) ; //< > // //< > int iTrap = GetLastError () ; //< > if ( iTrap == 0 ) { iTradeBarTime = iTime ( 0 , 0 , 0 ) ; //< > Alert ( sType , " closed with Hard " , sAct ) ; } //< > else { Alert ( sType , " close exception " , iTrap ) ; } //< > } //< > // </2.1.6. Code : Interface : iTryClose > //< >
////////////////////////////////////////////////////////////////////< 11> // < 2.2. Code : Special > //< > // //< > // < 2.2. Special 3 / - i 11 l - o > //< > // < 1. init - i 1 l - o /> //< > // < 2. deinit - i 1 l - o /> //< > // < 3. start - i 9 l - o /> //< > // </2.2. Special 3 / - i 11 l - o > //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </2.2. Code : Special > //< >
////////////////////////////////////////////////////////////////////< 12> // < 2.2.1. Code : Special : Init > //< > int init () // - i 1 l - o //< > { //< > Alert ( "" , "Start " , UninitializeReason () ) ; //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > } //< > // </2.2.1. Code : Special : Init > //< >
////////////////////////////////////////////////////////////////////< 13> // < 2.2.2. Code : Special : Deinit > //< > int deinit () // - i 1 l - o //< > { //< > Alert ( "" , "Stop " , UninitializeReason () ) ; //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > } //< > // </2.2.2. Code : Special : Deinit > //< >
////////////////////////////////////////////////////////////////////< 14> // < 2.2.3. Code : Special : Start > //< > int start () // - i 9 l - o //< > { //< > // < 2.2.3.1. History data inspection 4 >`````````````````````````//< > static int iTrigger = 0 ; if ( iTrigger == 0 ) { //< > if ( ( iTime ( 0 , 0 , 0 ) == 0 ) //< > || ( iBars ( 0 , 0 ) < iBaseLag + iBaseBar ) ) //< > return ; else iTrigger = 1 ; } //< > // </2.2.3.1. History data inspection 4 >`````````````````````````//< > // //< > // < 2.2.3.2. Main routine 3 >````````````````````````````````````//< > int iTicket = iGetTicket () ; //< > // //< > if ( iTicket < 0 ) iTryOpen () ; //< > else iTryClose () ; //< > // </2.2.3.2. Main routine 3 >````````````````````````````````````//< > // //< > // < 2.2.3.3. Exception handler 2 >```````````````````````````````//< > int iTrap = GetLastError () ; //< > if ( iTrap > 0 ) Alert ( "Exception " , iTrap ) ; //< > // </2.2.3.3. Exception handler 2 >```````````````````````````````//< > } //< > // </2.2.3. Code : Special : Start > //< > ////////////////////////////////////////////////////////////////////< 0>
전체 변경 목록:
1. 전역 변수 "int iTradeBarOnce = 1 ;" "Data : Input" 도메인에 추가되었습니다.
2. "Data : Buffer" 도메인이 생성되었습니다.
3. "Data : Buffer" 도메인에 글로벌 변수 "int iTradeBarTime"이 추가되었습니다.
4. 빈 함수 "iReserved_1 ()"이 추가되었습니다.
5. "iSignalOpen()" 기능이 변경되었습니다.
6. "iTryClose()" 기능이 변경되었습니다.
노트:
1. 글로벌 변수 "int iTradeBarOnce"는 동일한 바에서 반복 거래를 허용/금지합니다.
2. 이 변수의 값 "0"은 동일한 막대에서 반복 거래를 허용하고 값 "1"은 금지합니다.
3. 글로벌 변수 "int iTradeBarTime"은 "iTryClose()" 함수에서 거래된 바의 개장 시간 을 전송합니다.
4. "iSignalOpen()" 함수는 이 값을 받아 반복 거래를 제어하는 데 사용합니다.
5. "TRUE" 및 "FALSE" 대신 "1" 및 "0" 값을 사용하고 싶습니다.
6. 다음 명령문은 동일하지만 먼저 더 빠르게 작동합니다.
if ( iTradeBarTime == iTime ( 0 , 0 , 0 ) ) //< > if ( iTradeBarOnce == 1 ) return ( EMPTY ) ; //< >
if ( ( iTradeBarTime == iTime ( 0 , 0 , 0 ) ) //< > && ( iTradeBarOnce == 1 ) ) return ( EMPTY ) ; //< >
7. 나중에 사용할 수 있도록 빈 기능 "iReserved_1"이 추가되었습니다.
최종 수정일: 2010.03.18 22:54
상태: 준비
안녕하세요 허클베리입니다!
조금 후에 프로그램을 좀 더 읽기 쉽게 확장할 것입니다.
건배!