MMA_Breakout_strategy_volume I(MM 또는 MF 제외) - WhooDoo22에 의해 코딩됨 - 페이지 2

 
다시 말하지만 주문을 선택 하는 방법은 여러 가지가 있습니다. 예를 들어 부울을 사용하여 주문이 진행 중인지 마감되었는지 확인할 수 있습니다. 예: 주문이 전송되고 5개의 부울이 true로 설정됩니다. 이동 평균이 교차하기 시작하면 Boolean이 false로 설정됩니다. 특정 부울 변수가 참이고 특정 이동 평균이 교차하면 특정 부울 변수가 거짓으로 선언되고 특정 주문이 마감됩니다. 다른 방법도 있지만 별로 생각해보지 않았습니다. 나는 단순히 당신에게 해결책을 제공하고 싶습니다. 만족스러웠기를 바랍니다. 나는 이것을 하는 더 간단한 방법을 찾을 것이라고 생각하지만, 다시 말하지만, 나는 그것에 대해 많이 생각하지 않았습니다. 여전히 중요하지만 이 전략에서 MF 또는 MM만큼 코딩하기 어렵지 않습니다. 고맙습니다.
 
이전에 거래한 라이브 계정이 있고 현재 열려 있는 라이브 주문이 없는 경우. . . EURUSD M30에서 EA를 실행하면 어떻게 됩니까? 거래가 필요합니까?
 

그건 그렇고, 나는 전략 테스터 에서 당신의 EA를 실행했고 오류의 11GB 로그 파일로 끝났습니다. . . 예를 들어 . . .

23:08:49 2007.05.06 22:00 MMA_Breakout_strategy_volumeaIk_withouteMMjoreMF_u-rcodedmbywWhooDoo22 EURUSD,M30: OrderModify 오류 1

23:08:49 2007.05.06 22:00 MMA_Breakout_strategy_volumeaIk_withouteMMjoreMF_u-rcodedmbywWhooDoo22 EURUSD,M30: 닫기 #6 0.01 EURUSD에서 1.36028 sl.39 가격에 매수

23:08:49 2007.05.06 22:01 MMA_Breakout_strategy_volumeaIk_withouteMMjoreMF_u-rcodedmbywWhooDoo22 EURUSD,M30: OrderModify 기능에 대한 알 수 없는 티켓 6

티켓 #6은 막 마감되었으므로 수정할 수 없습니다. . . .
 
WhooDoo22 :
주문을 선택하는 방법에는 여러 가지가 있다고 생각합니다. 주문을 선택하는 모든 방법은 OrderSelect() 함수를 사용해야 합니다. 즉, EA가 전략 테스터에서 오류 없이 모든 주문에 대해 OrderClose() 함수를 명확하게 수행하기 때문에 이것이 실패하는 이유를 모르겠습니다.

귀하의 orderClose는 분명히 작동하지 않습니다. 반품 코드를 확인 했다면 알 수 있습니다. 귀하의 orderSelect가 작동하지 않지만 확인하지 않았습니다.

내가 티켓 번호가 아니면 귀하의 orderSelect가 실패하고 다른 모든 것도 마찬가지입니다.

내가 티켓 번호인 경우 다음 티켓 번호는 i+1이 아닙니다(테스터 제외)

   OrderSelect (i,SELECT_BY_TICKET,MODE_TRADES);
   if (OrderType()==OP_BUY)                                                                     {
   if (OrderLots()== 0.04 )                                                                       {
   if ( OrdersTotal ()> 0 )                                                                         {
   if ( iMA ( NULL , 0 , 1 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )<( iMA ( NULL , 0 , 25 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )))      {  
     {
      OrderClose(i, 0.01 ,Bid, 30 , CLR_NONE ); 
      i++;
     }
     }}}}
     
   OrderSelect (i,SELECT_BY_TICKET,MODE_TRADES);
   if (OrderType()==OP_BUY)                                                                     {
   if (OrderLots()== 0.03 )                                                                       {
   if ( OrdersTotal ()> 0 )                                                                         {
   if ( iMA ( NULL , 0 , 1 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )<( iMA ( NULL , 0 , 50 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )))      {  
     {
      OrderClose(i, 0.01 ,Bid, 30 , CLR_NONE ); 
      i++;
     }
     }}}}
     
   OrderSelect (i,SELECT_BY_TICKET,MODE_TRADES);
   if (OrderType()==OP_BUY)                                                                     {
   if (OrderLots()== 0.02 )                                                                       {
   if ( OrdersTotal ()> 0 )                                                                         {
   if ( iMA ( NULL , 0 , 1 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )<( iMA ( NULL , 0 , 100 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )))     {  
     {
      OrderClose(i, 0.01 ,Bid, 30 , CLR_NONE ); 
      i++;
     }
 

사이먼,

라이브 계정이 있다면...

RE: 라이브 계정 잔액 에서 볼륨 I을 실행하는 것은 권장하지 않습니다! 물론 선택은 귀하의 몫이지만 귀하를 대신하여 1권에서 2권으로의 진화가 완료될 때까지 라이브 계정에서 실행하는 것을 강력히 권장하지 않습니다. 볼륨 I은 아직 개발 중이며 완전히 코딩될 때까지 실행해서는 안 됩니다. LIVE 계정에서 직접 테스트하지 않았기 때문에 어떻게 될지 모르겠습니다. 나는 완료 부족을 이해하고 라이브 계정 테스트를 시작하기 전에 필수 요구 사항을 충족하기로 결정했습니다.


그런데,..

RE: 이 오류에 대해 바로 이해하고 있다고 생각합니다... 이 오류는 "EMERGENCY SL" 코드 블록 내의 오류를 반영합니다. 코딩하기가 그렇게 어렵지 않기 때문에 저는 이것에 제 힘을 집중한 적이 없습니다. 나는 부분적으로 그것을 코딩했고 그것의 성숙을 완성하지 않았다. "EMERGENCY SL" 코드 블록에는 중요한 조정이 없습니다. SELL 및 BUY "EMERGENCY SL" 코드 블록을 모두 제거하면 11기가 오류 목록을 받지 못할 것이라고 확신합니다. 처음부터 11기가인 이유는 시험을 치르는 역사의 과정을 통해 반복되는 같은 오류라고 생각하기 때문입니다.

고맙습니다.


윌리엄,

나는 Simon만큼 당신과 코드에 대해 논의한 역사가 없지만 당신의 포스트를 계속 진행하고 싶습니다(당신의 포스트에 감사드립니다! 환영합니다.).

볼륨 I/II에서 보고 싶은 것은 무엇입니까?

거래 가치를 보장하기 위해 엄격하게 테스트를 실행하고 테스트를 위한 필수 코드를 추가하고 있습니다. 그런 다음 라이브/데모에서 안전한 거래를 보장하기 위해 남은 코드 문제를 미세 조정합니다.

고맙습니다.

 
RaptorUK :
이전에 거래한 라이브 계정이 있고 현재 열려 있는 라이브 주문이 없는 경우. . . EURUSD M30에서 EA를 실행하면 어떻게 됩니까? 거래가 필요합니까?

후두22 :

사이먼,

라이브 계정이 있다면...

RE: 라이브 계정 잔액에서 볼륨 I을 실행하는 것은 권장하지 않습니다! 물론 선택은 귀하의 몫이지만 귀하를 대신하여 1권에서 2권으로의 진화가 완료될 때까지 라이브 계정에서 실행하는 것을 강력히 권장하지 않습니다. 볼륨 I은 아직 개발 중이며 완전히 코딩될 때까지 실행해서는 안 됩니다. LIVE 계정에서 직접 테스트하지 않았기 때문에 어떻게 될지 모르겠습니다. 나는 완료 부족을 이해하고 라이브 계정 테스트를 시작하기 전에 필수 요구 사항을 충족하기로 결정했습니다.


내가 만들고 당신이 보도록 권장하려고 했던 요점은 계정 기록이 있는 경우 코드에 있는 이러한 행이 거래가 수행되는 것을 방지한다는 것입니다. . .

   if (OrdersHistoryTotal()== 0 )                                                                 
      {
       if ( OrdersTotal ()<MaxOrders)  
   if (OrdersHistoryTotal()== 0 )                                                                 
      {
       if ( OrdersTotal ()<MaxOrders)  


OrderSend()를 사용하여 주문하는 다른 장소는 기존 주문이 열려 있는 곳입니다. . . . 따라서 내역에 오래된 주문이 있는 경우 EA는 거래를 하지 않습니다. . . 데모나 라이브에서 코드를 테스트했다면 아마 이것을 발견했을 것입니다.

 

사이먼,

하려고 했던 포인트...

RE: 이해했습니다. OrderSelect() 함수 를 사용하여 고유한 티켓 변수를 검색하는 것이 가능하다고 생각하십니까? 그러면 아래에 "if (OrdersHistoryTotal()==0){"이 포함된 코드 블록이 있습니다. 위의 OrderSelect() 함수 때문에 OrderSelect() 함수가 고유한 티켓 변수 "ticket"을 선택하고 OrdersHistoryTotal() 함수가 고유한 티켓 변수의 거래 내역만 검색하기 때문에 이것이 작동하지 않습니까? "if 문"은 고유한 티켓 변수인 특정 변수에 대한 히스토리의 주문만 검색합니다.

 //*************************
// BUY ORDER OPEN SECTION ;
//*************************

   OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES);
   if (OrdersHistoryTotal()== 0 )                                                                 {
   if ( OrdersTotal ()<MaxOrders)                                                                 {
   if ( iMA ( NULL , 0 , 1 , 0 , MODE_SMMA , PRICE_CLOSE , 2 )<( iMA ( NULL , 0 , 200 , 0 , MODE_SMMA , PRICE_CLOSE , 2 )))     { 
   if ( iMA ( NULL , 0 , 1 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )>( iMA ( NULL , 0 , 200 , 0 , MODE_SMMA , PRICE_CLOSE , 1 )))     { 
     {
      ticket= OrderSend ( Symbol (),OP_BUY, 0.05 ,Ask, 30 , 0 , 0 , "" , 0 , 0 ,Blue);    
      i++;
     }
     }}}}

고맙습니다.

 
WhooDoo22 :

사이먼,

하려고 했던 포인트...

RE: 이해했습니다. OrderSelect() 함수를 사용하여 고유한 티켓 변수를 검색하는 것이 가능하다고 생각하십니까? 아래에 "if OrdersHistoryTotal()==0{"이 포함된 코드 블록이 있습니다. OrdersHistoryTotal() 함수가 고유 티켓 변수의 이전 거래만 검색하기 때문에 작동하지 않습니까? "if 문"은 고유한 티켓 변수인 특정 변수에 대한 히스토리의 주문만 검색합니다.

고맙습니다.

나는 당신이 조금 혼란스러워지고 있다고 생각합니다. . . " OrdersHistoryTotal() 함수가 고유한 티켓 변수의 이전 거래만 검색하기 때문에 이것이 작동하지 않습니까 ? . .

"터미널에 로드된 계정 내역에서 마감된 주문 수를 반환합니다. 내역 목록 크기는 터미널의 "계정 내역" 탭의 현재 설정에 따라 다릅니다."


그것은 티켓 번호나 티켓 변수, 매직 넘버 또는 그 밖의 어떤 것과도 아무 관련이 없습니다. . . 히스토리 풀의 거래 수를 반환합니다. . . 유일한 제한 요소는 계정 기록 탭에 표시하도록 선택한 것입니다. . . 모든 기록, 지난 3개월, 지난 달 또는 사용자 지정 기간.
 
또 다른 점 . . . 귀하의 EA를 사용 중이고 거래가 이루어진 경우. . . . 그런 다음 몇 분 동안 PC를 종료해야 합니다. MT4 백업을 시작하고 EA가 시작하면 열려 있는 주문을 찾을 수 없습니다. . . 모든 OrderSelect() 호출 은 티켓으로 선택됩니다. . . 귀하의 티켓 변수 또는 귀하의 i 변수를 사용합니다. 둘 중 어느 쪽도 내 열린 주문의 티켓 번호 번호를 보유할 방법이 없습니다.
 

사이먼,

나는 당신이 조금 혼란스러워지고 있다고 생각합니다. . .

RE: 볼륨 II는 조건에 따라 주문 전송 프로세스를 시작해야 합니다. (조건에 따라) 첫 번째 주문이 전송되면 OrderClose() 함수 블록은 모든 미래 거래를 실행합니다. 이것을 주기라고 생각하십시오. 조건에 따라 볼을 굴린 다음 첫 번째 주문(볼 롤러 주문)이 종료되면 사이클이 시작됩니다. 주기는 미래 조건이 충족될 때까지 계속해서 숫자를 계산하고 활성 조건을 확인합니다.

고맙습니다

사유: