OrderSend() 함수에 버그가 있습니까?

 

벌써 4일째 고군분투하고 있는데, 겉보기에는 간단해 보이는 일을 구현하는데 잘 되지 않습니다. 이전에는 이미 다른 지표와 양초로 비슷한 작업을 수행했습니다. Masha를 사용하면 아무데도 가지 않습니다.

본질은 원시적이다! 가격이 특정 i_thresholdFromMa 오프셋보다 가까운 거리에서 지정된 기간의 틱에 접근하자마자 지연이 설정됩니다(이 Expert Advisor에는 하나만 있습니다!). 나는 이미 모든 기능과 모든 필터를 제거하고 기본 항목이 있는 매우 간단한 Expert Advisor를 남겼습니다.

구매 기능은 다음과 같습니다.

 //+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = fastMa + buyHear * pt;             // Получаем значение цны открытия
   
   if ((ND(OOP) - Ask) >= g_stopLevel)             // Проверка цену открытия на стоплевел          
   {
       if (ND(OOP) > Ask)           // Проверка что цена открытия выше Ask, т.к. у нас вход отложенником
       {
           Print ( "Bid = " , Bid);
           Print ( "Ask = " , Ask);
           Print ( "fastMa = " , fastMa);
           Print ( "Цена покупки = " , fastMa + buyHear * pt);
           Print ( "i_thresholdFromMa * pt = " , i_thresholdFromMa * pt);
           ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 3 , 0 , 0 , NULL , i_magic, 0 );
       }
   }
   if (ticket > 0 )
   {
       return ( true );
   }
   else
    
   Alert ( GetLastError ());
}

우리는 OrderSend() 가 변수 fastMa + buyHear * pt 의 합과 같은 개시 가격을 포함하고 있음을 봅니다.

화면에서 당신은 그런 가격이 없다는 것을 알 수 있습니다!

자동차의 조인트

또한 가격이 fastMa(빨간 점) 에 닿은 부분에 항목이 전혀 없는 것을 볼 수도 있습니다.

나는 특히 버퍼 1을 가져갔습니다. 끝에서 두 번째 막대, 끝에서 두 번째 막대가 이미 닫혀 있고 새 닫기가 없는지 확인하기 위해 알아야 할 사항... 마지막 0번째 막대를 다시 그리는 것을 방지하려면.

주문 메시지는 다음과 같습니다.

ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 3 , 0 , 0 , NULL , i_magic, 0 );

그리고 OOP:

 double OOP = fastMa + buyHear * pt;             // Получаем значение цны открытия
이것이 어떻게 가능한지?
파일:
test_ma_1.mq4  9 kb
 
hoz :

벌써 4일째 고군분투하고 있는데, 겉보기에는 간단해 보이는 일을 구현하는데 잘 되지 않습니다. 이전에는 이미 다른 지표와 양초로 비슷한 작업을 수행했습니다. Masha를 사용하면 아무데도 가지 않습니다.

본질은 원시적이다! 가격이 특정 i_thresholdFromMa 오프셋보다 가까운 거리에서 지정된 기간의 틱에 접근하자마자 지연이 설정됩니다(이 Expert Advisor에는 하나만 있습니다!). 나는 이미 모든 기능과 모든 필터를 제거하고 기본 항목이 있는 매우 간단한 Expert Advisor를 남겼습니다.

구매 기능은 다음과 같습니다.

우리는 OrderSend() 가 변수 fastMa + buyHear * pt 의 합과 같은 개시 가격을 포함하고 있음을 봅니다.

스크린샷은 그런 가격이 없다는 것을 보여줍니다!

또한 가격이 fastMa(빨간 점) 에 닿은 부분에 항목이 전혀 없는 것을 볼 수도 있습니다.

나는 특히 버퍼 1을 가져갔습니다. 끝에서 두 번째 막대, 끝에서 두 번째 막대가 이미 닫혀 있고 새 닫기가 없는지 확인하기 위해 알아야 할 사항... 마지막 0번째 막대를 다시 그리는 것을 방지하려면.

주문 메시지는 다음과 같습니다.

그리고 OOP:

이것이 어떻게 가능한지?

로그와 결과가 없을까요?
 
Vinin :

로그와 결과가 없을까요?


다음은 로그에 있는 내용입니다.

 2013.02 . 06 17 : 54 : 05     2011.01 . 13 07 : 00  test_Ma_1 EURUSD,H1: open # 3 buy stop 0.10 EURUSD at 1.31074 ok
2013.02 . 06 17 : 54 : 05     2011.01 . 13 07 : 00  test_Ma_1 EURUSD,H1: i_thresholdFromMa * pt = 0.0005
2013.02 . 06 17 : 54 : 05     2011.01 . 13 07 : 00  test_Ma_1 EURUSD,H1: Цена покупки = 1.3107
2013.02 . 06 17 : 54 : 05     2011.01 . 13 07 : 00  test_Ma_1 EURUSD,H1: fastMa = 1.3097
2013.02 . 06 17 : 54 : 05     2011.01 . 13 07 : 00  test_Ma_1 EURUSD,H1: Ask = 1.3099
2013.02 . 06 17 : 54 : 05     2011.01 . 13 07 : 00  test_Ma_1 EURUSD,H1: Bid = 1.3099
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 32  Tester: order # 2 , buy 0.10 EURUSD is opened at 1.29876
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 00  test_Ma_1 EURUSD,H1: open # 2 buy stop 0.10 EURUSD at 1.29876 ok
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 00  test_Ma_1 EURUSD,H1: i_thresholdFromMa * pt = 0.0005
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 00  test_Ma_1 EURUSD,H1: Цена покупки = 1.2988
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 00  test_Ma_1 EURUSD,H1: fastMa = 1.2978
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 00  test_Ma_1 EURUSD,H1: Ask = 1.2978
2013.02 . 06 17 : 54 : 05     2011.01 . 12 14 : 00  test_Ma_1 EURUSD,H1: Bid = 1.2978
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 11  Tester: order # 1 , buy 0.10 EURUSD is opened at 1.29953
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 00  test_Ma_1 EURUSD,H1: open # 1 buy stop 0.10 EURUSD at 1.29953 ok
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 00  test_Ma_1 EURUSD,H1: i_thresholdFromMa * pt = 0.0005
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 00  test_Ma_1 EURUSD,H1: Цена покупки = 1.2995
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 00  test_Ma_1 EURUSD,H1: fastMa = 1.2985
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 00  test_Ma_1 EURUSD,H1: Ask = 1.2987
2013.02 . 06 17 : 54 : 05     2011.01 . 12 12 : 00  test_Ma_1 EURUSD,H1: Bid = 1.2986
2013.02 . 06 17 : 54 : 04     test_Ma_1 inputs: i_TF= 0 ; i_fastMaPeriod= 10 ; i_magic= 3333021 ; i_thresholdFromMa= 5 ; buyHear= 10 ; SellHear= 10 ; 

저것들. 로그를 믿는다면 구매가 필요한 곳입니다. 화면을 보면 아예 없다고 ... 위에 화면을 이미 줬는데 보증금이 없는걸 알 수 있습니다. fastMa 의 10은 어디에도 없습니다.

 

안녕하세요 빅터입니다! 그것은 나를 위해 열리지만 배수됩니다. 한 줄을 약간 수정하면 열립니다.

   if ((ND(OOP) - Ask) >= MathMax (g_stopLevel,g_spread)) // Проверка цену открытия на стоплевел          
판매를 위해 같은 것을 추가하십시오! 행운을 빕니다!
 
borilunad :

안녕하세요 빅터입니다! 그것은 나를 위해 열리지만 배수됩니다. 한 줄을 약간 수정하면 열립니다.

판매를 위해 같은 것을 추가하십시오! 행운을 빕니다!


안녕, 보리스 . 글쎄, 그것은 이전과 같은 장소에서 열립니다. 그리고 그것이 열리지 않은 곳은 지금도 열리지 않습니다. H1 에서는 일반적으로 매우 이상하게 작동합니다.

M15 로 전환하고 0번째 (영) 막대의 MODE_OPEN 으로 마우스를 옮겼습니다.

일반적으로 관찰하면 예금은 필요한 곳에 배치되지만(TF M15를 의미함) , 분명히 열려야 하는 곳에는 예금이 배치되지 않습니다. 예를 들어 다음은 스크린샷입니다.

보증금이 있는 캔트

보릴루나드 :

안녕하세요 빅터입니다! 그것은 나를 위해 열리지만 배수됩니다.

보리스 , 그리고 합체 .. 역시 1단계일뿐.. 그리고 결승선까지 .. 모든 조건은 차후 이고 차차 정해질 예정 입니다. 지금은 현재의 뉘앙스를 마스터해야 합니다.
 
hoz :


안녕, 보리스 . 글쎄, 그것은 이전과 같은 장소에서 열립니다. 그리고 그것이 열리지 않은 곳은 지금도 열리지 않습니다. H1 에서는 일반적으로 매우 이상하게 작동합니다.

M15 로 전환하고 0번째 (영) 막대의 MODE_OPEN 으로 마우스를 옮겼습니다.

일반적으로 관찰하면 예금은 필요한 곳에 배치되지만(TF M15를 의미함) , 분명히 열려야 하는 곳에는 예금이 배치되지 않습니다. 예를 들어 다음은 스크린샷입니다.

보리스 , 그리고 합체 .. 역시 1단계일뿐.. 그리고 결승선까지 .. 모든 조건은 차후 이고 차차 정해질 예정 입니다. 지금은 현재의 뉘앙스를 마스터해야 합니다.

Victor, 고문에서 지표를 사용하는 방법을 연구해야합니다. 그리고 당신이 성취하는 방법을 모르는 무언가를 원하는 것 같습니다.

그리고 또 다른 사실은 매우 엄격한 조건에 매달릴 수 없기 때문입니다. 가격은 원하는 방식이 아닌 경우의 정확히 절반에서 여전히 작동합니다. 따라서 최악의 경우에 수행할 옵션을 스크롤해야 합니다.

솔직히 말해서, 나는 당신이 다른 바가 아닌 이 바에 들어가는 것이 왜 그렇게 중요한지 아직도 이해하지 못합니다. 제 생각에는 특정한 진입점이 아닌, 제때 시작된 트렌드를 파악하고 활용하는 것이 가장 중요하다고 생각합니다. 다른 Mashas를 시도하고 비교한 다음, 자주 실패하고 다른 지표가 더 좋지 않은 진입 신호가 아니라 원치 않는 진입에 대한 필터로 사용하는 방법을 배우십시오!

 
i_thresholdFromMa 의 값을 차트에 표시 하고 테스터를 보고 거기에 비교 결과를 표시할 수도 있습니다.
 
hoz :


다음은 로그에 있는 내용입니다.

저것들. 로그를 믿는다면 구매가 필요한 곳입니다. 화면을 보면 아예 없다고 ... 위에 화면을 이미 줬는데 보증금이 없는걸 알 수 있습니다. fastMa 의 10은 어디에도 없습니다.


로그로 판단 하면 OrderSend() 함수 는 전달한 가격으로 올바르게 주문합니다.
 

파파요즈 :



로그로 판단하면 OrderSend() 함수는 전달한 가격으로 올바르게 주문합니다.

예!!!

fastMa의 10은 어디에도 없습니다.

당신은 100 st가 주어집니다.

다른 스크린샷, 그게 전부입니다.

 
r772ra :

예!!!

fastMa의 10은 어디에도 없습니다.

당신은 100 st가 주어집니다.

다른 스크린샷, 그게 전부입니다.


4번째 기호에 대해서는 10pp입니다. 그리고 5번째 사인 100pp. 무엇을 좋아하지 않습니까?
 
PapaYozh :

로그로 판단하면 OrderSend() 함수는 전달한 가격으로 올바르게 주문합니다.


로그에 따라 수정합니다. 그러나 동일한 설정으로 테스터에서 실행하면 지연이 주기적으로 잘못 설정됩니다. 이미 말한 .. 내가 이것을 썼습니다. 나는 로그를 읽었고 모든 것이 정확하고 명확합니다. 나는 화면을 봅니다.

그러나 M5에서 이것을 눈치채지 못한 것도 이상하지만 일부 입력이 건너뛰는 것으로 나타났습니다.

사유: