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

 
Stells :

안녕하세요.

문제는 테스트 방법 또는 결과가 더 신뢰할 수 있는 방법입니까?

어드바이저에는 H1 기간이 어디에나 명확하게 명시되어 있습니다.

나는 m1에서 개방형 테스트 중입니다. 명백한 배수입니다.

나는 H1에서 모든 틱을 테스트합니다.

무엇을 믿어? 캐치는 정류장이 몇 점 작다는 것입니다. 이익이 큽니다.

EA 에 새 막대 열기에 대한 명시적 제어가 있고 새 막대가 열릴 때만 작동하는 경우 새 막대 열기에서 테스트할 수 있습니다. 그렇지 않으면 틱만 표시됩니다. 또한 정류장이 작고 새 바가 열리면 분명히 철거됩니다. 분당 M1에서 바는 여러 지점에서 정류장을 걸 수 있습니다. M1의 모든 틱을 테스트합니다.
 
artmedia70 :
EA에 새 막대 열기에 대한 명시적 제어가 있고 새 막대가 열릴 때만 작동하는 경우 새 막대 열기에서 테스트할 수 있습니다. 그렇지 않으면 - 진드기만. 또한 정류장이 작고 새 바가 열리면 분명히 철거됩니다. 분당 M1에서 바는 여러 지점에서 정류장을 걸 수 있습니다. M1의 모든 틱을 테스트합니다.

(이론적으로) H1 모든 틱과 어떻게 다릅니까?
 

안녕하세요! 코드에서 내가 뭘 잘못하고 있는지 알아낼 수 있도록 도와주세요. 제가 프로그래밍을 처음 접한 바로 그 순간부터 말씀드리겠습니다. mql4 튜토리얼을 읽고 많은 전문가 코드를 살펴보았지만 내 질문에 대한 답을 찾을 수 없었습니다. 5자, ECN 거래 계좌, 변동 스프레드 + 수수료가 있는 터미널이 있습니다. Expert Advisor는 가장 간단합니다. 빠른 MA가 느린 MA를 위에서 아래로 교차하고 그 반대로 구매하여 구매하는 경우 매도 거래를 엽니다. 빠른 MA가 느린 MA 를 아래에서 위로 교차합니다. 사실 TS는 훨씬 더 복잡해서 아직까지는 모든 주요 기능이 정상적으로 동작하지 않고 정상적으로 테스트도 못하고 최적화도 하지 못하고 불필요한 계산으로 코드를 복잡하게 만들지 않기로 했습니다. 다음은 어드바이저 코드입니다.

 #define MAGICMA   20050610
extern string text1              = "===========================MoneyManagment===========================" ;
extern double Lots               = 0.1 ;
extern string text2              = "======================Simple_Close_settings=========================" ;
extern double TakeProfit         = 100 ;
extern double StopLoss           = 100 ;
extern double Bezubitok          = 30 ; //Расстояние, через которое пройдёт цена от открытия сделки в "+", чтобы перенести СтопЛос в безубыток
extern string text3              = "===================TrailingStopLoss_settings=======================" ;
extern double Trailing           = 100 ; //Расстояние, через которое будет подтягиватся СтопЛос к текущей цене
extern double Slippage           = 3 ; // Допуск проскальзования цены при открытии и закрытии сделок
extern string text4              = "===================Indicator_Trade_System_settings=================" ;
extern int     Fast_EMA_Period    = 8 ;
extern int     Slow_EMA_Period    = 21 ;




//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
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++;
        }
     }
//---- return orders volume
   if (buys> 0 ) return (buys);
   else        return (-sells);
  }

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
int CheckForOpen()
  {
   double X1,X2,X3,X4;
   int ticket;

   
   X1= iMA ( NULL , 0 ,Fast_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 1 );
   X2= iMA ( NULL , 0 ,Slow_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 1 );
   X3= iMA ( NULL , 0 ,Fast_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 2 );
   X4= iMA ( NULL , 0 ,Slow_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 2 );
//----
if (Volume[ 0 ]> 1 ) return ;
  {   
       //ENTRY Ask(buy, long) 
       if (X3<=X4 && X1>X2)
        {
         ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage, 0 , 0 , "," ,MAGICMA, 0 , White );
        }
       //ENTRY Bid (sell, short)
       if (X3>=X4 && X1<X2)
        {
         ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage, 0 , 0 , "," ,MAGICMA, 0 , Red );
        }
  }
//----
  }
//+------------------------------------------------------------------+
//| Check for TrailingStop                                           |
//+------------------------------------------------------------------+
void CheckForTrailing()
 {

     if (Trailing> 0 ) for ( int i= 0 ; i<= OrdersTotal ();i++) 
     {
         OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
           if ( OrderMagicNumber ()==MAGICMA && OrderSymbol ()== Symbol ()) 
           {
             if ( OrderType ()==OP_BUY && Bid- OrderOpenPrice ()>Trailing* Point && Bid- OrderStopLoss ()>Trailing* Point )
             OrderModify ( OrderTicket (), OrderOpenPrice (),Bid-Trailing* Point , OrderTakeProfit (), 0 , CLR_NONE );
             if ( OrderType ()==OP_SELL && OrderOpenPrice ()-Ask>Trailing* Point && OrderStopLoss ()-Ask>Trailing* Point )
             OrderModify ( OrderTicket (), OrderOpenPrice (),Ask+Trailing* Point , OrderTakeProfit (), 0 , CLR_NONE );
           }
        }
}
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double X1,X2,X3,X4;
//---- go trading only for first tiks of new bar
   if (Volume[ 0 ]> 1 ) return ;
//---- get Moving Average 
   X1= iMA ( NULL , 0 ,Fast_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 1 );
   X2= iMA ( NULL , 0 ,Slow_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 1 );
   X3= iMA ( NULL , 0 ,Fast_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 2 );
   X4= iMA ( NULL , 0 ,Slow_EMA_Period, 0 , MODE_EMA , PRICE_CLOSE , 2 );
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false)         break ;
       if ( OrderMagicNumber ()!=MAGICMA || OrderSymbol ()!= Symbol ()) continue ;
       //---- check order type 
     
       if ( OrderType ()==OP_BUY)
        {
         if (Bid>=( OrderOpenPrice ()+TakeProfit* Point )||Bid<=( OrderOpenPrice ()-StopLoss* Point )) OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , White );
         break ;
        }
        
       if ( OrderType ()==OP_SELL)
        {
         if (Ask<=( OrderOpenPrice ()-TakeProfit* Point )||Ask>=( OrderOpenPrice ()+StopLoss* Point )) OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , White );
         break ;
        }
     }
//----
  }



//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
   if ( Bars < 25 || IsTradeAllowed ()==false) 
     return ( 0 );
   if ( AccountFreeMargin ()<( 100 * Point *Lots))
     {
       Print ( "Стоп! Недостаточно средств для продолжения торговли. Свободная маржа = " , AccountFreeMargin ());
       return ( 0 );  
     }
      
   if (Trailing> 0 ) CheckForTrailing();  
     
      
//---- calculate open orders by current symbol
   if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen();
   else                                     CheckForClose();
   
 
   

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

누구든지 내 질문에 대답할 수 있습니까?

1. 주문을 열 때 손절매와 이익실현 매개변수가 있어야 하는 OrderSend에 0이 있습니다. 거기에 다른 숫자를 넣으려고 할 때 EA가 거래를 열지 않습니다. 수동으로 거래를 열 때 확인했습니다. SL과 TP를 즉시 설정할 수 있습니다. 어떤 경우일 수 있습니까?

2. TP, SL, TS는 100포인트 가치가 있는데, 스프레드를 고려하더라도 이 포인트의 배수가 아닌 어떤 이유에서 거래가 마감된다는 것을 이해할 수 없습니다. 왜 이런 일이 발생합니까? 주문 마감 기능이 작동하지 않을 수 있습니까? 이 경우 손실을 초기에 설정된 SL로 제한하고 + 방향으로만 가격을 따르도록 하는 방법은 무엇입니까?

3. 내 DC에 Stoplevel = 100pp.가 있습니다. 수동으로 포지션 을 청산할 때와 같이 Stoplevel보다 낮은 수준을 설정할 수 있도록 가상 TP 및 SL을 어떻게 만들 수 있습니까? (Ecn 계정에서는 핍이 허용되지 않습니다.)

4. 가능한 경우 다음과 같은 방법을 수행할 수 있습니까? (어떤 이벤트가 먼저 발생하는지에 따라) 손익분기점으로 전환하여 SL 및 TP에서 역청산과 동시에 청산을 합니까? 해보긴 했는데 테스터에서는 한 포지션을 뜨고 테스트가 끝날 때까지 닫지 않고 스왑만 모은다.) 어느 쪽이든 효과가 있다.

답변해 주시는 모든 분들께 미리 감사드립니다!

파일:
 

안녕하세요 ...

질문 하나만

Daily에서 프랙탈을 취한다고 가정 해 봅시다 ...이 프랙탈의 형성이 끝나는 가격을 찾는 방법, H1에서 가정 해 봅시다 .... 가격에 화살표가 나타나는 것이 바람직합니다 ...

 
Cmu4 :
여러분, 어드바이저를 통해 특정 서버와 포트에 연결하는 방법은 무엇입니까? 그것이 가능합니까?
그래서 여기에 이 문제에 대한 전문가가 없습니까?
 
Cmu4 :
여러분, 어드바이저를 통해 특정 서버와 포트에 연결하는 방법은 무엇입니까? 그것이 가능합니까?

연결은 무슨 뜻인가요? 소켓 말입니까? 또는 http에서 읽으시겠습니까?
 
안녕하세요 간단하고 어리석은 질문이 있습니다. 전략 테스터 가 틀릴 수 있습니까?..전략을 테스트하는 방법에는 어떤 것이 있습니까?..감사합니다.
 

질문 하나만

Daily에서 프랙탈을 취한다고 가정 해 봅시다 ...이 프랙탈의 형성이 끝나는 가격을 찾는 방법, H1에서 가정 해 봅시다 .... 가격에 화살표가 나타나는 것이 바람직합니다 ...

 

안녕하세요!

특수 함수에 대한 질문: init(), start(), deinit().

교과서를 포함하여 알다시피 이 특수 기능을 중단(종료)하려면 연산자를 추가로 등록해야 합니다.

반환(예: IF-ELSE 조건문에서).

그러면 반환 값은 무엇을 의미합니까? 예: Return(0) 및 다른 정수(Return(1));

 

좋은 오후에요 여러분!

표시기 "FX5_Divergence_V2.1"을 약간 수정하는 데 도움을 주세요.

저는 3개의 화면으로 작업합니다. 창의 표시기는 이름 및 기타 값과 함께 표시되므로 표시기를 보기가 매우 어렵습니다. 종종 이러한 숫자로 인해 표시기의 피크가 보이지 않고 피크를 서로 비교하기 어렵습니다(화면에서 노란색 원).

표시기 이름만 표시되고 다른 숫자는 표시되지 않도록 표시기 수정을 도와주세요.)

응용 프로그램의 표시기 및 화면.


도움을 줄 수 있는 사람에게 미리 감사드립니다.


파일: