[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 129

 

안녕하세요 아울 다운받았습니다 테스터에서 다 잘되고 팔고 사는데 알파리에서 데모 깔아보니 그냥 사는데.....

어쩌면 거기에 뭔가가 빠져 있습니까? 실제 적용은 안해봐서 어떻게 될런지 모르겠네요....

/* 디컴파일러 제거 */

 

가격이 틱에 가까워지면 EA가 틱 + i_thresholdFromMa 들여쓰기의 가격으로 구매하기를 원합니다. 나는 긴 입장을 위해 이것을 썼습니다.

 bool OpenBuy( double fastMa)
{
   int ticket = - 1 ;
   
   //if (Bid > fastMa)
   if (High[ 0 ] == fastMa || Low[ 0 ] == fastMa)
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(fastMa + i_thresholdFromMa * pt), 3 , 0 , 0 , NULL , i_magic, 0 );
   
       if (ticket > 0 && OrderSelect (ticket, SELECT_BY_TICKET == true ))
 
   return ( true );
}

값은 fastMa 링크 에 의해 함수 매개변수를 통해 전달됩니다. 다음 코드에서는 현재의 고가와 저가를 fastMa 의 값과 비교합니다.

높거나 낮은 값이 fastMa 과 같으면 논리적으로 해당 가격으로 주문을 열어야 합니다( fastMa fastMa 값 + i_thresholdFromMa 오프셋).

기능이 작동하지 않습니다. 이유는 무엇입니까? EA는 오류를 로그로 보내지 않습니다.

 
hoz :

가격이 틱에 가까워지면 EA가 틱 + i_thresholdFromMa 들여쓰기의 가격으로 구매하기를 원합니다. 나는 긴 입장을 위해 이것을 썼습니다.

값은 fastMa 링크 에 의해 함수 매개변수를 통해 전달됩니다. 다음 코드에서는 현재의 고가와 저가를 fastMa 의 값과 비교합니다.

높거나 낮은 값이 fastMa 과 같으면 논리적으로 해당 가격으로 주문을 시작해야 합니다( fastMa fastMa 값 + i_thresholdFromMa 오프셋).

기능이 작동하지 않습니다. 이유는 무엇입니까? EA는 오류를 로그로 보내지 않습니다.

좋은 저녁이에요! 당신은 이미 깊은 밤을 보내고 있습니다!

분수 사이의 평등은 절대 수정되지 않습니다! 틱은 건너뛰고 신호가 없습니다. 따라서 다음과 같이 하는 것이 좋습니다.

   if (High[ 0 ] >= fastMa && Low[ 0 ] <= fastMa)
 

나는 Boris에 동의하지만 추가할 것입니다. 다음과 같이 가격 비교를 수행하는 것이 좋습니다.

Bid>fastMA가 아니라 Bid-fastMA>0

High[0]>=fastMA 가 아니라 High[0]-fastMA>-Zero 등 :)

글로벌 섹션에서:

#define Zero 0.00000001 또는 이와 유사한 것입니다.

 
tara :

나는 Boris에 동의하지만 추가할 것입니다. 다음과 같이 가격 비교를 수행하는 것이 좋습니다.

Bid>fastMA가 아니라 Bid-fastMA>0

High[0]>=fastMA 가 아니라 High[0]-fastMA>-Zero 등 :)

글로벌 섹션에서:

#define Zero 0.00000001 또는 이와 유사한 것입니다.

그리고 Alexey의 말에 동의하지만 자세한 내용은 다루지 않고 명백한 실수를 수정했습니다! 나머지는 모든 것을 찾고 확인하고 원하는대로 시음합니다.
 

AlexeyBoris 는 귀중한 의견을 보내주셔서 감사합니다.

#define Zero 0.00000001 , 제 생각에는 충분하지 않을 것 같아요 :) 여기에 반점이나 중단점을 넣어도 무방할 것 같아요...

 
hoz :

AlexeyBoris 는 귀중한 의견을 보내주셔서 감사합니다.

#define Zero 0.00000001 , 제 생각에는 충분하지 않을 것 같아요 :) 여기에 반점이나 중단점을 넣어도 무방할 것 같아요...

Zero 대신 변수를 넣어 필요한 간격을 결정하십시오! 그리고 아마도 그것을 남겨 둘 필요가있을 것입니다. 왜냐하면. 그 가치는 시장 상황에 따라 변할 것입니다.
 
borilunad :
0 대신 변수를 넣어 필요한 간격을 결정하십시오! 그리고 아마도 그것을 남겨 둘 필요가있을 것입니다. 왜냐하면. 그 가치는 시장 상황에 따라 변합니다.


예, 변수라면 시장에서 어떤 종류의 개발인지 테스트하고 관찰해야 합니다. 그동안 테스터기에서 실행해보고 차량의 장단점을 알아보기 위해 글을 씁니다.

다음과 같은 논리가 있습니다.

 bool OpenBuy( double fastMa, double slowMa)
{
   int ticket = - 1 ;
   
   //if (Bid > fastMa)
   //if (High[0] == fastMa || Low[0] == fastMa)
   if ( ( MathAbs (High[ 0 ] - fastMa) <= 1 * pt ) || ( MathAbs (Low[ 0 ] - fastMa) <= 0.1 * pt) )
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(fastMa + i_thresholdFromMa * pt), 3 , 0 , 0 , NULL , i_magic, 0 );
   
       if (ticket > 0 && OrderSelect (ticket, SELECT_BY_TICKET == true ))
 
   return ( true );
}

변수 대신에 지금은 테스트를 위해 1 을 입력한 다음 외부 변수로 가져올 것입니다.

내가 이해하는 한 이것이 가장 올바른 선택이 될 것입니다. 결국, 신호가 있도록 가격이 상단까지 촛불과 접촉하는지 여부가 중요합니다. 양초에는 2개의 끝이 있습니다(높음 및 낮음). 이것은 극값 중 2를 확인하는 것을 의미합니다. 그래서 1 보다 작다고 썼습니다.

여기서 전류가 흥미롭습니다. i_thresholdFromMa (들여쓰기)의 거리에서 열립니다. 즉, 손에서가 아니라 촛불의 끝에서.  

여는 함수에 들어가는 조건이라는 사실은 신경쓰지 마시기 바랍니다. 하지만 시그널 함수에는 빼도록 하겠습니다.

다음은 예를 들어 스크린샷입니다.

순간의 화면

빨간 마우스는 fastMA 입니다. i_thresholdFromMa (마우스 패딩)는 외부 변수에서 5 와 같습니다. 모든 조건에서 나머지는 구매합니다. 여기에서 빨간색 fastMa 아래 2개의 파란색 중지 주문을 볼 수 있습니다. 나는 여기에 어떤 논리도 보이지 않습니다. 결국 주문은 ND(fastMa + i_thresholdFromMa * pt) 의 가격으로 구체적으로 발송되며 위의 함수에서 볼 수 있습니다...

 
hoz :


예, 변수라면 시장에서 어떤 종류의 개발인지 테스트하고 관찰해야 합니다. 그동안 테스터기에서 시승해보고 차량의 장단점을 알아보기 위해 글을 씁니다.

다음과 같은 논리가 있습니다.

변수 대신에 일단 테스트를 위해 1 을 넣은 다음 외부 변수로 꺼낼 것입니다.

내가 이해하기로는 이것이 가장 올바른 선택이 될 것입니다. 결국, 신호가 있도록 가격이 상단까지 촛불과 접촉하는지 여부가 중요합니다. 양초에는 2개의 끝이 있습니다(높음 및 낮음). 이것은 극값 중 2를 확인하는 것을 의미합니다. 그래서 1 보다 작다고 썼습니다.

여기서 전류가 흥미롭습니다. i_thresholdFromMa (들여쓰기)의 거리에서 열립니다. 즉, 손에서가 아니라 촛불의 끝에서.  

여는 함수에 들어가는 조건이라는 사실은 신경쓰지 마시기 바랍니다. 하지만 시그널 함수에는 빼도록 하겠습니다.

다음은 예를 들어 스크린샷입니다.

빨간 마우스는 fastMA 입니다. i_thresholdFromMa (마우스의 패딩)는 외부 변수에서 5 와 같습니다. 모든 조건에서 나머지는 구매합니다. 여기에서 빨간색 fastMa 아래에 2개의 파란색 중지 주문을 볼 수 있습니다. 나는 여기에 어떤 논리도 보이지 않습니다. 결국 주문은 ND(fastMa + i_thresholdFromMa * pt) 의 가격으로 구체적으로 발송되며 위의 함수에서 볼 수 있습니다...

포지션이 더 일찍 열리기를 원하면 바의 중간에 매수를 위한 바의 저점과 매도를 위한 바의 고가를 지정해야 합니다.

   if ( MathAbs (fastMa - Low[ 0 ]) <= 1 * pt ) //для бая

   if ( MathAbs (High[ 0 ] - fastMa) <= 1 * pt ) // для сэлла
   
 
borilunad :

포지션이 더 일찍 열리기를 원하면 바의 중간에 매수를 위한 바의 저점과 매도를 위한 바의 고가를 지정해야 합니다.

 if ( MathAbs (fastMa - Low[ 0 ]) <= 1 * pt ) //для бая

   if ( MathAbs (High[ 0 ] - fastMa) <= 1 * pt ) // для сэлла


글쎄, 당신은 전에 할 필요가 없습니다. 나는 촛불이 mashka에 맞는 쪽을 모릅니다. 위냐 아래냐.. 그것이 문제로다. 따라서 이 배열은 적절하지 않습니다. 그렇지 않습니까?

게다가 지금 당장은 OrderSend() 함수에 다른 시작 가격 이 있고 어떤 경우에도 손보다 높습니다.

여기에서 함수의 값을 인쇄합니다.

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy(double fastMa, double slowMa)
{
   int ticket = -1;
   
   if ( (MathAbs(High[0] - fastMa) <= 1 * pt ) || ( MathAbs(Low[0] - fastMa) <= 0.1 * pt) )
   {
       if ((fastMa + i_thresholdFromMa * pt) > Ask)            // Проверка что цена открытия выше Ask, т.к. у нас вход отложенником
      Print("fastMa = ", DoubleToStr(fastMa,Digits));
      Print("i_thresholdFromMa = ", DoubleToStr(i_thresholdFromMa * pt,Digits));
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(fastMa + i_thresholdFromMa * pt), 3, 0, 0, NULL, i_magic, 0);
      Print("OrderOpenPrice() = ", DoubleToStr(OrderOpenPrice(),Digits));
   }
      if (ticket > 0 && OrderSelect(ticket, SELECT_BY_TICKET == true))
 
   return (true);
}

다음은 로그에 표시되는 내용입니다.

 2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: delete # 110 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: modify # 110 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: open # 110 buy stop 0.10 EURUSD at 1.29820 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: i_thresholdFromMa = 0.00050
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: fastMa = 1.29770
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: delete # 109 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: modify # 109 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: open # 109 buy stop 0.10 EURUSD at 1.29820 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: i_thresholdFromMa = 0.00050
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: fastMa = 1.29770
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: delete # 108 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: modify # 108 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: open # 108 buy stop 0.10 EURUSD at 1.29820 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: i_thresholdFromMa = 0.00050
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: fastMa = 1.29770
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: delete # 107 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: modify # 107 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02 . 01 15 : 37 : 18      2011.01 . 12 14 : 02   D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02 . 01 15 : 37 : 14      D_Aleks_first_pattern EURUSD,H1: loaded successfully

여기서 가격은 개봉 시 내가 설정해야 하는 것이 분명합니다. 결국, 오산이 진행 중입니다. 마스카라의 가치에 틈이 더해진다. 그리고 당신은 인쇄물에서 그것을 볼 수 있습니다.

사유: