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

 
Vinin >> :

화면 바로 밖에 표시됩니다. 별도의 창에서 수행하십시오.

"별도의 창에서"는 어떻게 되나요?

 
splxgf >> :

이것은 Elliottwave가 아닌 프로그래밍 포럼입니다... 아마도 http://elliottwave.ru/에서 산책을 해야 할 것입니다.

이 포럼은 거래 전략과 Elliott Wave 거래에 대해 논의합니다.

역시 전략이겠죠?

 
dmmikl86 писал(а) >>

"별도의 창에서"는 어떻게 되나요?

#property indicator_separate_window
 
dmmikl86 >> :

"별도의 창에서"는 어떻게 되나요?

하나의 카트에 하네스는 불가능합니다

말과 떨고 있는 암사슴. (와 함께)

지표는 별도의 창에 표시하더라도 필연적으로 분해됩니다. 특별한 트릭을 사용하지 않고 하나의 차트에 GPPUSD 1.5, GBPJPY 145.0의 값을 표시하는 것은 매우 불편합니다.

 

좋은 저녁이에요! 나만의 어드바이저를 만들려고 하는데.. MA 교차점과 역 교차점에 대해 다른 어드바이저와 유추해서 해봤습니다..

하지만 매개변수로 작업을 마치면... 한 방향으로만 포지션을 열고 닫지도 않습니다..

선이 다시 교차할 때 닫히도록 여기에 기능을 추가하려면 어떻게 해야 합니까?

일반적으로 마에스트라는 도움이 됩니다! :-(

....

파란색 선을 넘으면 매수하고, 넘으면 닫는다.

빨간선을 넘으면 매도하고, 아래로 내리면 닫는다.

그림에서 알 수 있듯이 이 시스템은 작동하지 않습니다.

코드를 조금 도와주세요..제발!


 extern double Lots               = 0.1 ;
double Points ;
int init ( )
  {
   Points = MarketInfo ( Symbol ( ) , MODE_POINT ) ;
   return ( 0 ) ;
  }
int CalculateCurrentOrders ( string symbol )
  {
   int buys = 0 , sells = 0 ;
   for ( int i = 0 ; i < OrdersTotal ( ) ; i + + )
     {
      if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) = = false ) break ;
      if ( OrderSymbol ( ) = = Symbol ( ) & & OrderMagicNumber ( ) = = MAGICMA )
        {
         if ( OrderType ( ) = = OP_BUY )  buys + + ;
         if ( OrderType ( ) = = OP_SELL ) sells + + ;
        }
     }
   if ( buys > 0 ) return ( buys ) ;
   else       return ( - sells ) ;
  }
double LotsOptimized ( )
  {
   double lot = Lots ;
   int    orders = HistoryTotal ( ) ;  
   int    losses = 0 ;                 
   lot = NormalizeDouble ( AccountFreeMargin ( ) * 0.02 / 1000.0 , 1 ) ;
   if ( 3 > 0 )
     {
      for ( int i = orders - 1 ; i > = 0 ; i - - )
        {
         if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) = = false ) { Print ( "Error in history!" ) ; break ; }
         if ( OrderSymbol ( ) ! = Symbol ( ) | | OrderType ( ) > OP_SELL ) continue ;
         //----
         if ( OrderProfit ( ) > 0 ) break ;
         if ( OrderProfit ( ) < 0 ) losses + + ;
        }
      if ( losses > 1 ) lot = NormalizeDouble ( lot - lot * losses / 3 , 1 ) ;
     }
   if ( lot < 0.1 ) lot = 0.1 ;
   return ( lot ) ;
  }
void CheckForOpen ( )
  {
double apglav1 ;
double apglav2 ;
double apsig1 ;
double apsig2 ;
int    res ;
   if ( Volume [ 0 ] > 1 ) return ;
   apglav1 = iCustom ( NULL , 0 , "Caska" , 0 , 1 ) ; // первая линия на 1м баре
   apsig1 = iCustom ( NULL , 0 , "Caska" , 1 , 1 ) ; // вторая линия на 1м баре   
   apglav2 = iCustom ( NULL , 0 , "Caska" , 0 , 2 ) ; // первая линия на 2м баре
   apsig2 = iCustom ( NULL , 0 , "Caska" , 1 , 2 ) ; // вторая линия на 2м баре
     if ( apglav2 < apsig2 & & apglav1 > apsig1 )
     {
      res = OrderSend ( Symbol ( ) , OP_BUY , LotsOptimized ( ) , Ask , 3 , "" , MAGICMA , 0 , Blue ) ;
      return ;
     }
     if ( apglav2 > apsig2 & & apglav1 < apsig1 )
     {
      res = OrderSend ( Symbol ( ) , OP_SELL , LotsOptimized ( ) , Bid , 3 , "" , MAGICMA , 0 , Red ) ;
      return ;
     }
  }
  void CheckForClose ( )
  {
double apglav1 ;
double apglav2 ;
double apsig1 ;
double apsig2 ;
   if ( Volume [ 0 ] > 1 ) return ;
   apglav1 = iCustom ( NULL , 0 , "Caska" , 0 , 1 ) ; // первая линия на 1м баре
   apsig1 = iCustom ( NULL , 0 , "Caska" , 1 , 1 ) ; // вторая линия на 1м баре   
   apglav2 = iCustom ( NULL , 0 , "Caska" , 0 , 2 ) ; // первая линия на 2м баре
   apsig2 = iCustom ( NULL , 0 , "Caska" , 1 , 2 ) ; // вторая линия на 2м бар
   for ( int i = 0 ; i < OrdersTotal ( ) ; i + + )
     {
      if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) = = false )        break ;
      if ( OrderMagicNumber ( ) ! = MAGICMA | | OrderSymbol ( ) ! = Symbol ( ) ) continue ;
      if ( OrderType ( ) = = OP_BUY )
        {
        if ( apglav2 > apsig2 & & apglav1 < apsig1 ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 3 , White ) ;
        break ;
        }
   if ( OrderType ( ) = = OP_SELL )
        {
        if ( apglav2 < apsig2 & & apglav1 > apsig1 ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 3 , White ) ;
        break ;
        }
}
}
void start ( )
  {
   if ( Bars < 100 | | IsTradeAllowed ( ) = = false ) return ;
   if ( CalculateCurrentOrders ( Symbol ( ) ) = = 0 ) CheckForOpen ( ) ;
   else                                    CheckForClose ( ) ;
  }
 

Elliotts는 항상 거래에 대해 이야기하는 포럼에 있습니다. 주제를 만들고 질문하십시오. 그리고 여기에서 질문할 수 있습니다. 내가 대답하거나 다른 사람이 대답할 수도 있습니다.

 
DDFedor >> :

늦게... 타이머가 시작되었습니다... '파동 분석'

세이버는 이 지점도 금지합니다.

 
Ibiss >> :

파란색 선을 넘으면 매수하고, 넘으면 닫는다.

빨간선을 넘으면 매도하고, 아래로 내리면 닫는다.

그림에서 알 수 있듯이 이 시스템은 작동하지 않습니다.

코드를 조금 도와주세요..제발!


예, 모든 것이 맞는 것 같습니다. (짧게 본다)

오직. 다음은 표현입니다

if(볼륨[0]>1) 반환;

완전히 제거하는 것이 좋습니다. "This"는 테스터에서만 올바르게 작동합니다. 그리고 그것은 온라인에서 작동하지 않습니다!

올바르게 만드는 것이 좋습니다. 시가로 작업합니다.

 

자외선 포럼 사용자!

지표를 작성 했는데 문제는 이동 평균(Buf_2)이 그려지지 않는다는 것입니다. 코드는 다음과 같습니다.

 #property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

extern int average = 14 ;
//---- buffers
double Buf_1 [ ] , Buf_2 [ ] ;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ( )
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_LINE ) ;
   SetIndexBuffer ( 0 , Buf_1 ) ;
   SetIndexStyle ( 1 , DRAW_LINE ) ;
   SetIndexBuffer ( 1 , Buf_2 ) ;
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit ( )
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ( )
  {
   int    i , 
          Counted_bars = IndicatorCounted ( ) ;


//----
//====================================================================
// график тела с объемом
double sum_b = 0.0 ;
i = Bars - Counted_bars - 1 ;           // Индекс первого непосчитанного
   while ( i > = 0 ) 
      {  
       //----
       if ( Close [ i ] > Open [ i ] ) {
         sum_b = sum_b + ( Close [ i ] - Open [ i ] ) * Volume [ i ] ;
         Buf_1 [ i ] = sum_b ;
         }
         
       if ( Close [ i ] < Open [ i ] ) {
         sum_b = sum_b - ( Open [ i ] - Close [ i ] ) * Volume [ i ] ;
         Buf_1 [ i ] = sum_b ;
         }
         
       if ( NormalizeDouble ( Close [ i ] , Digits ) = = NormalizeDouble ( Open [ i ] , Digits ) ) {
         Buf_1 [ i ] = Buf_1 [ i - 1 ] ;
         }
         
       i - - ;
       //----
      }
//====================================================================
// average
int n = 0 ;
   while ( i > = 0 ) 
      {  
       //----
       while ( n < = average ) {
         Buf_2 [ i ] = Buf_1 [ i - n ] ;
         n + + ;
         }
       
       i - - ;
       //----
      }

//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
문제가 무엇인지 이해하도록 도와주세요.
 

Urain писал(а) >>

세이버는 이 지점도 금지합니다.

네 멋져요.

2 작동 . 요컨대, 순전히 파도 위에서 거래하려면 컴퓨터 속도의 BRAIN 이 필요합니다. 그런 속도의 두뇌와 메노입니다. 또는 월간 차트에서 거래하십시오(모든 결과는 물론 적어도 D1에서). 왜냐하면 단 한 달 만에 초보자가 이벤트 개발을 위한 모든 옵션 을 계산하는 것이 가능하며 , 필요한 모든 이력을 고려하여 상품 거래를 시작할 때부터 매우 바람직합니다. 또는 옵션으로 동시에 질문에 대한 답변 - 두 번째 물결이 어떻게 생겼는지 찾는 방법 (당신이 물었습니다). 모든 반전은 FIRST 웨이브에서 시작됩니다. 첫 번째 수정은 두 번째입니다. M15를 가져 가면 움직임의 시작, 수정 (첫 번째 및 두 번째 파도 - PATTERN) 을 자세히 볼 수 있습니다.이 작업을 백 번 수행하면 (반전 고려) 질문에 대한 답변이 준비됩니다. . 시장은 종종 연속되지 않고 그림을 그린다는 것을 명심하십시오. 그러한 패턴 을 역사가 아니라 현실에서 본다면 사실이라고 볼 수 있습니다 . 추세가 같은 방향으로 발전할 때만 패턴이 자주 깨지는 것입니다. 일반적으로 파도에서 거래하려면 많은 조건이 필요합니다.

개인적으로 나는 이러한 기능 중 일부가 없습니다.

1. 남다른 마음.

2. 매우 복잡한 주제를 마스터하는 데 많은 시간.

3. 상품 거래 시작 시의 호가.

3. 추상적 사고.

4. 적어도 1년 동안은 전체 파동 그림을 지속적으로 머릿속에 간직해야 하며(여기에 두뇌가 필요합니다), 그냥 유지하는 것이 아니라 옵션과 함께 유지해야 합니다. 수정 유형뿐만 아니라 많은 옵션이 있습니다. 간단히 말해서 매개변수를 최적화하는 것과 같습니다. 매개변수를 추가하고 값을 두 개 추가하면 옵션이 두 배, 매개변수가 5개이고 값이 1000개라면?

일반적으로 뇌는 충분하지 않습니다. 그리고 시간. 및 따옴표.

그리고 훨씬 더. 클래식 TA보다 훨씬 간단합니다. 개인적으로 Wave Analysis에 너무 많은 시간을 보냈기 때문에 개인적으로 항상 사용하지만 VA보다 나쁘지 않습니다. 그러나 많은 거래자들은 VA 없이도 괜찮습니다.