[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 57

 
Karabas >> :

안녕하세요! 알려주십시오, 표시기의 색상을 변경할 수 있습니까? 기본 창에 서로 다른 색상의 기간이 있는 두 개의 이동 평균 이 있다고 가정해 보겠습니다. 감사해요


MA(이동 평균) 중 하나를 마우스 오른쪽 버튼으로 클릭하면 창이 팝업되고 "이동 평균 속성" 행을 클릭하면 색상을 변경할 위치가 이미 표시됩니다.

 
xruss >> :

Cls_B와 Cls_S는 포지션 청산을 허용하며 Opn_B Opn_S와 모순될 수 없습니다. 여기에 매수 또는 매도 주문이 열린 위치와 이 기간 동안 더 이상 포지션이 열리지 않도록 마감해야 하는 위치를 표시하는 시계열 코드를 작성해야 합니다((

이미 가지고 있는 거래를 여는 조건을 대체하기 위한 것이 아니라 새 거래를 추가하기 위한 것이었습니다. 내가 이해하는 한, 동일한 신호에 대한 마감 신호가 수신되지 않은 경우 EA가 열릴 신호에 대한 포지션을 여는 것을 금지하고 싶습니다. 여기에 추가:

if (Opn_B==true && Cls_B==false) { не открывать Buy  }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

그리고 당신의 방식대로 한다면, 언젠가는 그곳에서 포지션을 닫아야 하는 바를 어떻게 계산할 것입니까? :)

 

여보세요

 //+------------------------------------------------------------------+
int start ( )
   {
//----
 double Macd_0 = iMACD ( NULL , 0 , MAFastPeriod , MASlowPeriod , MASignalPeriod , 1 , 0 , 0 ) ;
 double Macd_1 = iMACD ( NULL , 0 , MAFastPeriod , MASlowPeriod , MASignalPeriod , 1 , 0 , 1 ) ;
 double signal_0 = iMACD ( NULL , 0 , MAFastPeriod , MASlowPeriod , MASignalPeriod , 1 , 1 , 0 ) ;
 double signal_1 = iMACD ( NULL , 0 , MAFastPeriod , MASlowPeriod , MASignalPeriod , 1 , 1 , 1 ) ;
    
     if ( ( Macd_0 < Macd_1 & & Macd_1 > 0 ) & & ( signal_0 < signal_1 & & signal_1 > 0 ) )
     if ( CheckOrders ( OP_SELL ) )
       {
       if ( ! OrderSend ( Symbol ( ) , OP_BUY , Lots , Ask , 3 , 0 , 0 , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Buy. Ошибка №" , GetLastError ( ) ) ; 
       }
       
     if ( ( Macd_0 > Macd_1 & & Macd_1 < 0 ) & & ( signal_0 > signal_1 & & signal_1 < 0 ) )
     if ( CheckOrders ( OP_BUY ) )
       {
       if ( ! OrderSend ( Symbol ( ) , OP_SELL , Lots , Bid , 3 , 0 , 0 , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Sell. Ошибка №" , GetLastError ( ) ) ; 
       }

//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+

이것이 첫 번째 옵션입니다.

 //+------------------------------------------------------------------+
int start ( )
   {
//----
 double Macd_0 = iMACD ( NULL , 0 , pFast , pSlow , pSignal , 1 , 0 , 0 ) ;
 double Macd_1 = iMACD ( NULL , 0 , pFast , pSlow , pSignal , 1 , 0 , 1 ) ;
 double signal_0 = iMACD ( NULL , 0 , pFast , pSlow , pSignal , 1 , 1 , 0 ) ;
 double signal_1 = iMACD ( NULL , 0 , pFast , pSlow , pSignal , 1 , 1 , 1 ) ;
    
     if ( ( Macd_0 < Macd_1 & & Macd_1 > 0 ) & & ( signal_0 < Macd_0 & & signal_1 < Macd_1 & & signal_1 > 0 ) )
     if ( CheckOrders ( OP_SELL ) ) //продажа
       {
       if ( ! OrderSend ( Symbol ( ) , OP_BUY , Lots , Ask , 3 , 0 , 0 , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Buy. Ошибка №" , GetLastError ( ) ) ; 
       }
       
     if ( ( Macd_0 > Macd_1 & & Macd_1 < 0 ) & & ( signal_0 > Macd_0 & & signal_1 > Macd_1 & & signal_1 < 0 ) )
     if ( CheckOrders ( OP_BUY ) ) //покупка
       {
       if ( ! OrderSend ( Symbol ( ) , OP_SELL , Lots , Bid , 3 , 0 , 0 , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Sell. Ошибка №" , GetLastError ( ) ) ; 
       }

//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+

이것은 두 번째 옵션입니다.

Macd 기반 EA , 거래가 간단합니다(모든 것이 0 및 1 bar, 공개 가격을 기반으로 함).

첫 번째 경우에는 macd 값이 증가하고(구매의 경우) 판매의 경우 감소합니다. 신호 라인도 이러한 조건에 있습니다.

두 번째 경우에는 빠른 라인과 느린 라인의 교차를 구현하려고 시도했습니다 macd . 하지만 약간의 의문이 남았습니다........... 맞나요...........

 
Everlost >> :

이미 가지고 있는 거래를 여는 조건을 대체하기 위한 것이 아니라 새 거래를 추가하기 위한 것이었습니다. 내가 이해하는 한, 동일한 신호에 대한 청산 신호가 수신되지 않은 경우 Expert Advisor가 신호에 대한 포지션을 개설하는 것을 금지하고 싶습니다. 여기에 추가:

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

그리고 당신의 방식대로 한다면, 언젠가는 그곳에서 포지션을 닫아야 하는 바를 어떻게 계산할 것입니까? :)

어떻게 포지션을 열 수 있습니까?

Opn_B=true Cls_B=false이고 Cls_B가 그 순간에 true일 수 없는 순간에 열리기 때문입니다.


가격 시세를 교차한 MA가 있고(Opn_S 형성), 다운 포지션을 열었고, SL이 손익분기점으로 이동했다고 가정해 보겠습니다. 그리고 가격은 SL을 핥아 손익분기점에 도달했고...

제 경우에는 다운 포지션이 열립니다((((((새로운 MA`크로싱 신호가 가격(Cls_S))에 의해 형성되기 전에



 
xruss >> :

어떻게 포지션을 열 수 있습니까?

Opn_B=true Cls_B=false이고 Cls_B가 그 순간에 true일 수 없는 순간에 열리기 때문입니다.

예, 변수를 하나 더 추가합니다(예: int Last_Position=-1). 포지션을 연 직후 주문 유형을 입력하십시오. 그리고 조건을 추가합니다:

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

 
Everlost >> :

예, 변수를 하나 더 추가합니다(예: int Last_Position=-1). 포지션을 연 직후 주문 유형을 입력하십시오. 그리고 조건을 추가합니다:

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

네, 그렇게 했지만 결과가 조금 마음에 들지 않았습니다((

추세가 약해지고 플랫(수정)으로 변한 다음 새로운 활력으로 계속 이동하고 올바른 Opn_S 신호를 제공하여 차단되는 상황이 있습니다. 신호 Opn_S에서 Cls_S로 그리고 Opn_B에서 Cls_B로 영역에서 하나의 주문으로 거래를 제한하는 방법은 무엇입니까?

 
xruss >> :

네, 그렇게 했지만 결과가 조금 마음에 들지 않았습니다((

추세가 약해지고 플랫(수정)으로 변한 다음 새로운 활력으로 계속 이동하고 올바른 Opn_S 신호를 제공하여 차단되는 상황이 있습니다. 신호 Opn_S에서 Cls_S로 그리고 Opn_B에서 Cls_B로 영역에서 하나의 주문으로 거래를 제한하는 방법은 무엇입니까?

매우 간단합니다. Cls_S 또는 Cls_B 신호가 도착하면 마지막으로 열린 위치를 잊어버립니다(Last_Position 변수의 값을 다시 -1로 재설정).

if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;

 
이전 거래가 수익성이 없다는 것을 알 수 있도록 고문의 조건을 처방하는 방법을 알려줄 사람
 
Dimoncheg >> :
이전 거래가 수익성이 없다는 것을 알 수 있도록 고문의 조건을 처방하는 방법을 누가 알려줄 것입니까?

if (OrderProfit() < 0) {

...

}

 
친애하는 전문가 여러분, 제 질문을 무시하지 마십시오.

매일과 같이 변동성을 계산하는 지표가 있습니까? 그러나 무한한 숫자가 0.34처럼 나오는 것은 아닙니다. 그리고 그는 하루에 촛불 틱 수를 세고 예를 들어 주어진 기간(일수)으로 나누어 평균 값을 알 수 있도록 합니다. 예: 100을 열고 200을 닫습니다. 둘째 날 - 시가 200, 종가 250. 이 2일의 평균 변동성 = ((200-100)+(250-200))/2일=(100+50)/2=75
가능한 경우 다운로드할 위치.