코딩 도움말 - 페이지 705

 


더블 BU1=iMA(Symbol(),0,ShortSma,0,MODE_SMA,PRICE_CLOSE,i+1);

더블 BL1=iMA(Symbol(),0,LongSma,0,MODE_SMA,PRICE_CLOSE,i);

문자열 SBUY="거짓";문자열 SSEL="거짓";

if(BU1<닫기[1]&&BL1<닫기[1])SBUY="true";if(BL1>닫기[1]&&BU1>닫기[1])SSEL="참";

이제 작동합니다. TP 이후 Trade에 문제가 발생했습니다.....

Mladen을 도와주셔서 감사합니다.

 

안녕하세요 mladen 씨

이 단어를 어떻게 번역할 수 있습니까?

http://forexsystemsru.com/1075962-post327.html

클러스터 분석


관심


 

mladen 씨:

MTF를 만들 수 있습니까?

안부

파일:
 

안녕하세요 코더 여러분,

나는 아마도 간단한 질문이 있을 것입니다.

내 EA는 문제 없이 주문을 열고 사고 팔고 있지만

SIGNAL_CLOSEBUY 또는 SIGNAL_CLOSESELL로 주문을 마감하지 않습니다.

여기에서 RSI_Filter를 구매 또는 판매 주문을 마감하는 트리거로 사용합니다.

내 코드를 복사했습니다. 누군가가 볼 수 있다면 매우 기쁠 것입니다.

미리 감사합니다!

#define SIGNAL_NONE       0
#define SIGNAL_BUY        1
#define SIGNAL_SELL       2
#define SIGNAL_CLOSEBUY   3
#define SIGNAL_CLOSESELL 4

extern int     MaxShortTrades   = 1 ;
extern int     MaxLongTrades    = 1 ;
int            Order            = SIGNAL_NONE;

// RSI Filter
double RSIfilter= iRSI ( Symbol (), 0 ,RSIPeriod, PRICE_CLOSE ,BarShift);

// Trade Signal Indicator
double NLD1,NLD2;
      NLD1 = iCustom ( NULL , 0 , "indicator" , 0 ,Length, 0 , 0 , 1 , 0 , 0 , 0 , 1 );
      NLD2 = iCustom ( NULL , 0 , "indicator" , 0 ,Length, 0 , 0 , 1 , 0 , 0 , 0 , 2 );        

// Amount of long / short trades      
int longs  = 0 ;
int shorts = 0 ;
double j;
      
       for (j= OrdersTotal ()- 1 ;j>= 0 ; j--)
        {
         if ( OrderType ()== OP_BUY )  longs++;   // Check # of long trades.
         if ( OrderType ()== OP_SELL ) shorts++; // Check # of short trades
        }
                
// place orders
if (longs < MaxLongTrades && NLD1 > NLD2 && RSIfilter> 55 ) Order  = SIGNAL_BUY;        
if (shorts < MaxShortTrades && NLD1 < NLD2 && RSIfilter< 45 ) Order = SIGNAL_SELL;
   

// Signal Begin(Exit Buy)
if (RSIfilter< 50 ) Order=SIGNAL_CLOSEBUY;

if (Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && ( Bars !=BarCount))))
              {
               dummyResult= OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage*PipMultiplier,MediumSeaGreen);
               if (EachTickMode) TickCheck = True ;
               if (!EachTickMode) BarCount = Bars ;
               return ( 0 );
              }

// Signal Begin(Exit Sell)                                                              
if (RSIfilter> 50 ) Order=SIGNAL_CLOSESELL;

if (Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && ( Bars !=BarCount))))
                 {
                  dummyResult= OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage*PipMultiplier,DarkOrange);
                   if (EachTickMode) TickCheck = True ;
                   if (!EachTickMode) BarCount = Bars ;
                   return ( 0 );
                 }
 
tfi_markets :

안녕하세요 코더 여러분,

나는 아마도 간단한 질문이 있을 것입니다.

내 EA는 문제 없이 주문을 열고 사고 팔고 있지만

SIGNAL_CLOSEBUY 또는 SIGNAL_CLOSESELL로 주문을 마감하지 않습니다.

여기에서 RSI_Filter를 구매 또는 판매 주문을 마감하는 트리거로 사용합니다.

내 코드를 복사했습니다. 누군가가 볼 수 있다면 매우 기쁠 것입니다.

미리 감사합니다!

#define SIGNAL_NONE       0
#define SIGNAL_BUY        1
#define SIGNAL_SELL       2
#define SIGNAL_CLOSEBUY   3
#define SIGNAL_CLOSESELL 4

extern int     MaxShortTrades   = 1 ;
extern int     MaxLongTrades    = 1 ;
int            Order            = SIGNAL_NONE;

// RSI Filter
double RSIfilter= iRSI ( Symbol (), 0 ,RSIPeriod, PRICE_CLOSE ,BarShift);

// Trade Signal Indicator
double NLD1,NLD2;
      NLD1 = iCustom ( NULL , 0 , "indicator" , 0 ,Length, 0 , 0 , 1 , 0 , 0 , 0 , 1 );
      NLD2 = iCustom ( NULL , 0 , "indicator" , 0 ,Length, 0 , 0 , 1 , 0 , 0 , 0 , 2 );        

// Amount of long / short trades      
int longs  = 0 ;
int shorts = 0 ;
double j;
      
       for (j= OrdersTotal ()- 1 ;j>= 0 ; j--)
        {
         if ( OrderType ()== OP_BUY )  longs++;   // Check # of long trades.
         if ( OrderType ()== OP_SELL ) shorts++; // Check # of short trades
        }
                
// place orders
if (longs < MaxLongTrades && NLD1 > NLD2 && RSIfilter> 55 ) Order  = SIGNAL_BUY;        
if (shorts < MaxShortTrades && NLD1 < NLD2 && RSIfilter< 45 ) Order = SIGNAL_SELL;
   

// Signal Begin(Exit Buy)
if (RSIfilter< 50 ) Order=SIGNAL_CLOSEBUY;

if (Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && ( Bars !=BarCount))))
              {
               dummyResult= OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage*PipMultiplier,MediumSeaGreen);
               if (EachTickMode) TickCheck = True ;
               if (!EachTickMode) BarCount = Bars ;
               return ( 0 );
              }

// Signal Begin(Exit Sell)                                                              
if (RSIfilter> 50 ) Order=SIGNAL_CLOSESELL;

if (Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && ( Bars !=BarCount))))
                 {
                  dummyResult= OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage*PipMultiplier,DarkOrange);
                   if (EachTickMode) TickCheck = True ;
                   if (!EachTickMode) BarCount = Bars ;
                   return ( 0 );
                 }

진행하기 전에 해결해야 하는 두 가지 문제:

  1. 먼저 주문을 선택해야 합니다. 주문을 닫기 전에 주문을 선택하지 않았습니다.
  2. 마감하려는 주문 유형이 무엇인지 확인하지 않고 있습니다. 유형을 확인한 다음 주문 유형 에 따라 추가 조치를 취하세요. 그리고 주문 유형에 따라 입찰 또는 매도할 마감 가격을 조정합니다.
 
mladen :

진행하기 전에 해결해야 하는 두 가지 문제:

  1. 먼저 주문을 선택해야 합니다. 주문을 닫기 전에 주문을 선택하지 않았습니다.
  2. 마감하려는 주문 유형이 무엇인지 확인하지 않고 있습니다. 유형을 확인한 다음 주문 유형에 따라 추가 조치를 취하세요. 그리고 주문 유형에 따라 입찰 또는 매도할 마감 가격을 조정합니다

친애하는 믈라덴,

도움이 되는 제안을 해주셔서 대단히 감사합니다.

내가 당신을 올바르게 이해했다면 아래 코드와 같은 것을 구현해야합니다.

"buy_ticket"을 선택하려면 EA를 닫아야 합니다. 코드는 아직 테스트되지 않았으며 일종의 "의사 상태"입니다.

int buy_ticket= 0 ;
int sell_ticket= 0 ;
int ticket;

// Iterate through tickets
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
    {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ())
         {
           if ( OrderType ()== OP_BUY )
              buy_ticket= OrderTicket ();
             else
             if ( OrderType () == OP_SELL )
               sell_ticket= OrderTicket ();
           }
        }

// Close Ticket with trigger
if (RSIfilter< 50 ) Order=SIGNAL_CLOSEBUY;

if (RSIfilter>50) Order=SIGNAL_CLOSESELL; 

                
if (Order==CLOSE_BUY && buy_ticket!= 0 )
         {
         if ( OrderSelect (buy_ticket, SELECT_BY_TICKET ))
            {
             if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (),Slippage, clrDodgerBlue ))
               Print ( "Error closing Buy #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
            }
         }
       else
       if (Order==CLOSE_SELL && sell_ticket!= 0 )
         {
         if ( OrderSelect (sell_ticket, SELECT_BY_TICKET ))
            {
             if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (),Slippage, clrDodgerBlue ))
               Print ( "Error closing Sell #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
            }
         }
    
 
tfi_markets :

친애하는 믈라덴,

도움이 되는 제안을 해주셔서 대단히 감사합니다.

내가 당신을 올바르게 이해했다면 아래 코드와 같은 것을 구현해야합니다.

"buy_ticket"을 선택하려면 EA를 닫아야 합니다. 코드는 아직 테스트되지 않았으며 일종의 "의사 상태"입니다.

int buy_ticket= 0 ;
int sell_ticket= 0 ;
int ticket;

// Iterate through tickets
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
    {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ())
         {
           if ( OrderType ()== OP_BUY )
              buy_ticket= OrderTicket ();
             else
             if ( OrderType () == OP_SELL )
               sell_ticket= OrderTicket ();
           }
        }

// Close Ticket with trigger
if (RSIfilter< 50 ) Order=SIGNAL_CLOSEBUY;

if (RSIfilter>50) Order=SIGNAL_CLOSESELL; 

                
if (Order==CLOSE_BUY && buy_ticket!= 0 )
         {
         if ( OrderSelect (buy_ticket, SELECT_BY_TICKET ))
            {
             if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (),Slippage, clrDodgerBlue ))
               Print ( "Error closing Buy #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
            }
         }
       else
       if (Order==CLOSE_SELL && sell_ticket!= 0 )
         {
         if ( OrderSelect (sell_ticket, SELECT_BY_TICKET ))
            {
             if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (),Slippage, clrDodgerBlue ))
               Print ( "Error closing Sell #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
            }
         }
    

동시에 1개의 주문(같은 마법, 기호)만 열렸습니까?

그렇다면 작동합니다.

 

친애하는 친구,

첨부된 ea는 고정 로트에 대해 지속적으로 주문을 엽니다(모든 주문이 0.10에 열려 있음).

미결제 주문 로트 값을 변경하거나 제어 하지 않습니다!!


"Lot ""MaximumRisk" 값 설정에서 사용할 수 있지만 주문 로트 값에는 적용되지 않습니다!

도와 줄수있으세요?

 

안녕하세요 mladen 씨

이 그림과 비슷한 빈 하위 창 을 만들 수 있습니까?

관심

 

안녕 Mladen, 나는 당신의

stepma_pdf_4_4.ex4 뿐만 아니라 히스토그램,

MT4에 복사했습니다. 차트 창으로 드래그

다음 메시지가 표시됩니다. pls는 이미지에서 볼 수 있습니다.

지표를 어떻게 사용할 수 있는지 알려주시겠습니까?


넓은 땅


추신. 평균 ___mtf__alerts_7_4.ex4 및 히스토그램에서도 동일한 일이 발생했습니다.

파일:
warning.jpg  20 kb