ONLY CANDLE / BAR - 양초를 분류하거나 분리하는 방법은 무엇입니까? - 수정해주세요!

 


ONLY CANDLE - 어떻게 Candle을 분류하거나 분류합니까?

저를 수정해주세요!



우리는 강세와 약세 촛불이 있습니다 나는 이것을 분리하고 싶습니다

  그것은 양치기 와 같습니다. 목자 에게는 농장과 농작물이 있고 양이 있습니다.

양털 깎을 때가 되면 목동이 치는 존 씨는 농장에 가서 양을 잡고 ...

처음 잡은 양은 너무 작아서 면도할 수 없습니다. John은 놓아주었습니다.

다음 양이 좋다 존은 가위 를 들고 양은 알몸이다

다음 양은 좋고 큰 양털이 있습니다 - John은 BIG 가위 를 사용하고 양은 알몸입니다.

다음 양은 양자리입니다 - John은 칼을 들고 양자리는 현재 내시입니다.


양초/바도 똑같이 하고 싶어요
우리의 촛불이 간다 Bar[0].... 우리는 기다리고 있다..... 그녀가 간다, 우리는 기다리고 있다.... 15분(M15) 그리고 있다! ... 뭐야? 확인하다!

Bullisch Candle과 Candle(price open [1]- price close [1])이 2포인트 너무 작은 경우 - let go , 우리는 아무것도 하지 않습니다



Bullisch Candle과 Candle(시가 시가 [1]- 시가 종가 [1])이 4포인트인 경우 프로그램을 시작하십시오.

CheckForOpenS1(); 가격이 양초보다 4포인트 높으면 구매 기능 을 시작합니다(시나리오 1).

Bullisch Candle과 Candle(시가 시가 [1]- 시가 종가 [1])이 있는 경우 5포인트가 있습니다. -이것은 매우 큰 양초입니다. 그런 다음 프로그램을 시작하십시오.

CheckForOpenS2(); 가격이 캔들보다 14포인트 높으면 구매 기능 시작(시나리오2)



나는 이 마녀에게 모든 촛불을 원합니다. 나는 프로그램을 시작하고 싶습니다. 큰 촛불이 있으면 구매하고, 너무 작은 촛불이 있으면 다음을 기다릴 것입니다.

그래서 ... 이것은 정확하지만 아이디어가 있습니다 :)

필요 없는 것은 쓰지 마시기 바랍니다.

 int start() // start program 
   
double bear() // check first candle -mabey is bear? = THIS IS aur NEW function title bear body is in()
   {     // start body
       double A=Open[ 1 ];   // stay Open[1] is changeable A
       double B=Close[ 1 ];   // stay Open[1] is changeable A    
       double C=A-B;         // result
       return (C);               // take result C and put in to function bear()
   }                               //end body, NOW bear is aur C example 6 or 89 ;212; 1; 2;..;;;.
   
double bull() // check first candle -mabey is bull
   {
       double A=Open[ 1 ];   // we use double because euro/usd have point example 1.9865
       double B=Close[ 1 ];     
       double C=B-A;
       return (C);
   }

// when we have bull catalog/ segregate  him..
switch (bull())
      { 
         case 1 : break ;             // nothing happen
         case 2 : break ;             // nothing happen
         case 3 : break ;             // nothing happen
         case 4 : CheckForOpenS1(); break ; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break ; // start CheckForOpenS2() and S3 ....
      }

// when we have bears catalog/segregate him..
switch (bears())
      { 
         case 1 : break ;
         case 2 : break ;
         case 3 : break ;
         case 4 : CheckForOpenY1(); break ; // start CheckForOpenY1()- take it and go thrue with this.. we will see want is '...Y1'
         case 5 : CheckForOpenY2(); CheckForOpenY3(); break ; // start CheckForOpenY2() and Y3
      }


return (); // exit program wait for new tip, and ower and ower ....
}   // end


 
 

영어가 모국어가 아닌 사람들이 당신의 이야기를 이해할 수 있다고 생각합니까? 나는 양과 양치기 존을 이해하지만 그 이야기는 나에게 의미가 없습니다. (나일지도 몰라... 그래서 미안해)

Trading/mql4에 대한 일반적인 정의를 사용하여 '국제 영어'로 문제를 설명할 수 있습니까?

이 문장은 무엇을 의미합니까?


나머지 사람들을 위해 이 글을 쓰지 마십시오.
 
kronin :

영어가 모국어가 아닌 사람들이 당신의 이야기를 이해할 수 있다고 생각합니까? 나는 양과 양치기 존을 이해하지만 그 이야기는 나에게 의미가 없습니다. (나일지도 몰라... 그래서 미안해)

Trading/mql4에 대한 일반적인 정의를 사용하여 '국제 영어'로 문제를 설명할 수 있습니까?

이 문장은 무엇을 의미합니까?

Kronin, 아마도 그것은 단지 온라인 번역기의 오류였을 것입니다. 포럼에서 항상 발생했습니다.
 

ONLY CANDLE - 포지션을 여는 방법? - 다음 주제가 되어야 합니다. 진행자 어떻게 생각하세요? 할 수 있습니까?

선택한 시나리오 를 구현 합니다.
주문을 보내는 방법?

 int start() // start program 
{

// We have some function here like "int CalculateCurrentOrders(string symbol)" and  "double LotsOptimized()"
// many different thing, suddenly! we have our "CheckOpen();" 

//--------------------------------

void CheckOpen()       // void - because function return nothing
{                     // start body
   int     res;         // we will use changeable "res" this is "int" value
   if ( Bid==Close[ 1 ]+ 4 * Point )   // check conditions: Bid or Ask must be 4 Point above a BAR if no - nothing happen if Yes go below
     {               // start body if
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 ,Open[ 1 ]+ 37 * Point , 0 , "" ,MAGICMA, 0 ,Red);   // start "res" and "res" is sending message to platform to open position 
                     // what position is in "()" allways must be the same sequence symbol , op_*** , lot size , ...)
       return ;         // if "res" do it then retunrn too ... y ... "if". Because "if" is done return too CheckOpen(). Because "CheckOpen()" is done stop and end.
     }               // stop body if

  }                   // stop body function "void CheckOpen()"
  
//-------------------------------- 

주문이 하나 있습니다
그러나 하나의 기능 에서 두 개의 위치를 열려면 어떻게 해야 합니까?
이 시나리오에는 CheckForOpenS1() 시나리오가 있습니다. 물론 가격이 올바른 위치에 있으면 두 번 구매합니다.

 //--------------------------------  


 
void CheckOpen1()       // define first function
{                     
   int     res;       
   if ( Bid==Close[ 1 ]+ 4 * Point )  
     {               
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red);  
                     
       return ;        
     }               

}   
  
void CheckOpen2()       // define second function
{                     
   int     res;       
   if ( Bid==Close[ 1 ]+ 8 * Point )   // change 8 Point ( 4 ==> 8 )
     {               
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red);  
                     
       return ;        
     }               

}   

//       I DONT KNOW..............

//--------------------------------  / our scenario  
void CheckForOpenS1()= true ;      
 
   void CheckOpen1()
   void CheckOpen2()
  
  
//--------------------------------  / OR LIKE THESE
int res;
if ( CheckForOpenS1() == true )
 {
 res= CheckOpen1() CheckOpen2();
 }
 
Wodzuuu :

ONLY CANDLE - 포지션을 여는 방법? - 다음 주제가 되어야 합니다. 사회자 어떻게 생각하세요? 할 수 있습니까?

선택한 시나리오 를 구현 합니다.
주문을 보내는 방법?

주문이 하나 있습니다
그러나 하나의 기능에서 두 개의 위치를 열려면 어떻게 해야 합니까?
이 시나리오에는 CheckForOpenS1() 시나리오가 있습니다. 물론 가격이 올바른 위치에 있으면 두 번 구매합니다.

나는 당신이 묻는 것을 정말로 이해하지 못합니다. . . 당신은 자신을 매우 명확하게 만들고 있지 않습니다. . . 아니면 그냥 나일 수도 있습니다.

이 코드는 문제를 일으킬 것입니다. . .

 if ( Bid == Close[ 1 ] + 4 * Point )

이 스레드 읽기: 가격이 != 가격이 될 수 있습니까?

 

그렇지 않으면
여러 이벤트 시나리오간단한 EA 를 작성하는 방법

작은 양초 였습니다 - 열기 기능 1
평균 적인 양초 였습니다 - 기능 2 열기
양초 였습니다 - 열기 기능 3


이 시점에서 switch() 가 적절 하다고 생각합니다.

기능 1 은 1개 위치 열고 닫는 지 확인 합니다.
2 그들을 보호 하는 2개의 위치를 열고 닫습니다 .
3 오픈 2포지션 이지만 가격이 다릅니다 ....

촛불이 있을 때마다, 다른 하는 또 다른 기능 있을 때마다

당신 이 나를 위해 수 없다는 것을 알고 있지만 어떤 조언이라도....

 

약속한 대로 다시 살펴보았지만 여전히 이해가 되지 않습니다. 죄송합니다.

이것은 결코 작동하지 않을 것입니다:

 double bull() // check first candle -mabey is bull
   {
       double A=Open[ 1 ];   // we use double because euro/usd have point example 1.9865
       double B=Close[ 1 ];     
       double C=B-A;
       return (C);	// <-- C is probably never 1,2,3,4,5.....
   }

// when we have bull catalog/ segregate  him..
switch (bull())		// <-- the expression here is something like 0.00123. None of your case statements will be executed.
      { 
         case 1 : break ;             // nothing happen
         case 2 : break ;             // nothing happen
         case 3 : break ;             // nothing happen
         case 4 : CheckForOpenS1(); break ; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break ; // start CheckForOpenS2() and S3 ....
      }

스위치 사용 방법에 대해 여기를 읽어보십시오: https://docs.mql4.com/basis/operators/switch

이것은 전혀 명확하지 않습니다.

 void CheckOpen2()       // define second function
{                     
   int     res;       
   if ( Bid==Close[ 1 ]+ 8 * Point )   // change 8 Point ( 4 ==> 8 )
     {               
      res= OrderSend ( Symbol (),OP_SELL, 0.02 ,Bid, 0 , 0 , 0 , "" ,MAGICMA, 0 ,Red);  
                     
       return ;        
     }               

} 

동등한 표현은 원하지 않을 수도 있지만, 어떻게 해야 합니까?

<로 읽어야 하는 경우 새 바가 도착하면 즉시 매도 주문을 보냅니다(새 바의 시가가 previos 바의 종가 +8*Point 보다 <일 수 있음).
>로 읽어야 하는 경우 가격이 약간 상승할 때까지 기다렸다가 SELL 주문을 보냅니다. 나는 당신의 전략을 잘 이해하지 못해서 아마도 이렇게 원했을 것입니다.

나는 또한 당신이 의미하는 것을 상상할 수 있습니다 :

 if (Bid<Close[ 1 ] - 8 * Point )   

1포인트가 1핍인 4자리 브로커와 거래하고 있습니까? 그렇지 않으면 가격은 아마도 당신이 원하는 것이 아닐 수도 있는 0.8핍만 움직여야 합니다(그리고 스프레드는 추가로 혼란을 줄 수 있습니다).

코드를 다시 살펴보고 가능한 한 수정해야 한다고 생각합니다. 구체적인 질문이 있으면 자유롭게 질문하십시오. 코더가 의도한 바를 잘못 이해했기 때문에 전략이 완전히 다른 방식으로 작동할 수 있다는 점에 유의하십시오.

 

전략은
양초 4 에서 5 포인트 사이 에서 BULL 나타나면 양초 이후 ( 어떤 조건 에서도 ) 2 개의 매수 주문 보낼 준비 합니다 .

양초 6 에서 7 포인트 사이 에서 BULL 나타나면 양초 이후 ( 어떤 조건 에서도 ) 3 개의 매수 주문 보낼 준비 합니다 .

EA 가 작동하지 않는 이유 거나 Bid 또는 Ask 작은 실수 가 있습니다 . ( 이 오류찾을 수는 없지만 일반적으로 EA내가 작성한 내용 에 대해 매우 잘 작동합니다 . 구매 및 닫기) 기술 계획 을 보여줍니다 .

지금 바로 작동합니다.

맨 아래 를 보면 매우 혼잡해지며 때때로 EA Bull4 시나리오대체 하고 시나리오Bull6 Bull4 열고 깨달았 습니다. 갑자기 마음바뀌고 Bull6 Bull6 완료 합니다 .
단순화 할 수 있습니까 ?

 //+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#define MAGICMA   20050610


//+------------------------------------------------------------------+
//| Calculate open positions    HOW MEANY OF THIS                    |
//+------------------------------------------------------------------+

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++;
        }
     }
//---- return orders volume
   return (buys);
  }

//+------------------------------------------------------------------+
//| Calculate candle                                                 |
//+------------------------------------------------------------------+
bool BULL4()
   {
   if (Close[ 1 ]-Open[ 1 ]>= 4 * Point && Close[ 1 ]-Open[ 1 ]<= 5 * Point )
   return ( true );
   } 

bool BULL6()
   {
   if (Close[ 1 ]-Open[ 1 ]>= 6 * Point && Close[ 1 ]-Open[ 1 ]<= 7 * Point )
   return ( true );
   }
      
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
 
void CheckForOpenBULL41()
  {
   int     res;
   if (Bid==Close[ 1 ]+ 3 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.41 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Blue);
       return ;
     }
  }
  
void CheckForOpenBULL42()
  {
   int     res;
   if (Ask>OrderOpenPrice()+ 2 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.42 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Blue);
       return ;
     }
  }  
  
void CheckForOpenBULL61()
  {
   int     res;
   if (Bid==Close[ 1 ]+4* Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.61 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
  }
  
void CheckForOpenBULL62()
  {
   int     res;
   if (Ask>OrderOpenPrice()+ 2 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.62 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
  }

void CheckForOpenBULL63()
  {
   int     res;
   if (Ask>OrderOpenPrice()+ 2 * Point )  
     {
      res= OrderSend ( Symbol (),OP_BUY, 0.63 ,Ask, 0 ,Close[ 1 ]- 25 * Point , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+

void CheckForCloseBULL()
{
   RefreshRates();
   if (OrderOpenPrice()+ 4 * Point < Ask)
   for ( int i = OrdersTotal (); i >= 0 ;i--)
   {
       OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
       if (OrderSymbol() == Symbol ()) 
      {
         bool ticket = true ;
         if (OrderType() == OP_BUY) ticket = OrderClose(OrderTicket(),OrderLots(),Bid, 1 ,Black);

      }
   }
} 

  
  
//+------------------------------------------------------------------+
//| Start function                                 |
//+------------------------------------------------------------------+
void start()
  {
   
   if (BULL4()== true && CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpenBULL41();
   else                                     CheckForCloseBULL();

   if (CalculateCurrentOrders( Symbol ())== 1 ) CheckForOpenBULL42();
   else                                     CheckForCloseBULL();
   
   //---//
   
   if (BULL6()== true && CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpenBULL61();
   else                                     CheckForCloseBULL();

   if (CalculateCurrentOrders( Symbol ())== 1 ) CheckForOpenBULL62();
   else                                     CheckForCloseBULL();
   
   if (CalculateCurrentOrders( Symbol ())== 2 ) CheckForOpenBULL63();
   else                                     CheckForCloseBULL(); 
    
   if (CalculateCurrentOrders( Symbol ())== 3 ) CheckForOpenBULL63();
   else                                     CheckForCloseBULL(); 
       
   if (CalculateCurrentOrders( Symbol ())== 4 ) CheckForCloseBULL();
  }
//+------------------------------------------------------------------+
 
Wodzuuu :

전략은
양초 4에서 5까지 BYK나타나면 양초 이후 ( 어떤 조건에서도 ) 개의 데이터 구매 주문 을 보낼 준비 를 합니다 ( 가격하나 를 구매 하는 필요한 수준도달 하면 zkup 2 도달 하는 방법 ).

양초 6 에서 7 까지 BYK 나타나면 양초 ( 어떤 조건에서도 ) 3개의 구매 주문 을 보낼 준비 를 합니다 ( 가격하나 를 구매 하는 필요한 수준도달 하면 zkup 2 및 3 도달 하는 방법 )

EA 가 작동하지 않는 이유 거나 Bid 또는 Ask 작은 실수 가 있습니다 . ( 이 오류찾을 수는 없지만 일반적으로 EA내가 작성한 내용 에 대해 매우 잘 작동합니다 . 구매 및 닫기) 기술 계획 을 보여줍니다 .

맨 아래 를 보면 매우 혼잡해지며 때때로 EA Bull4 시나리오대체 하고 시나리오Bull6 Bull4 열고 깨달았 습니다. 갑자기 마음바뀌고 Bull6 Bull6 완료 합니다 .
단순화 할 수 있습니까 ?

BYK ??

이것은 잘못된 것입니다. . .

 for ( int i = OrdersTotal (); i >= 0 ;i--)

. . . 위치는 0에서 시작하므로 OrdersTotal() - 1부터 카운트다운해야 합니다.


당신 은 이것을 한다 . . . .

 void CheckForCloseBull()           // close ALL AT ONCE buy of course
{
   RefreshRates();
   if (  OrderOpenPrice()  > Ask+ 6 * Point )

. . . OrderOpenPrice() 를 얻었지만 어떤 주문에 대해? 여러 주문이 열려 있습니다. . .



변수 res 를 사용하여 OrderSend() 호출에서 반환 값을 보유합니다. . . 그리고 당신은 그것으로 무엇을합니까? 아무것도, 왜?

함수 반환 값이란 무엇입니까? 어떻게 사용합니까?

 

아주 좋은 대답 Raptor UK


1. 해상도 문제
저는 EA 이동 평균 분해능 을 연구하고 있습니다 . 3번만 있습니다 . 모두 시간 함수 존재하지 않기 때문입니다 .

처음으로 "hello we will use res" 정보 사용 됩니다.

두 번째 로 주문 을 보냅니다 . OrderSend res = 343321 주문 반환하며 ' void CheckForOpen ( ) "res 가 존재하지 않습니다.

하지만...
나는 "void CheckForOpen ()" 이 이 명령진실을 관찰 하면 " void CheckForOpen ()"제외하고 어떻게든 그 번호가져오는 OrderSelect 명령을 시도 할 것이라고 생각 한다 .

2. OrderOpenPrice() 문제

당신은 절대적으로 옳습니다. 그러나 이 구문 은 놀라울 정도로 잘 작동합니다 .

3. OrdersTotal() - 1 당신이 절대적으로 옳습니다.

4. BYK(폴란드)= BULL 번역기에 문제가 있습니다.

 

아직 EA 를 이해 하지 못하는 사람들 위해 이야기작성 하십시오 : D 헤헤


우리 가 수행하는 모든 단계 기능 입니다. 내가 지금 쓰고 있는 컴퓨터 는 하나기능이다. 나는 TV 를 두 번째 기능 으로 본다.
이제 주방 으로 이동 ...
우리는 요리책 을 가지고 목차열고 요점순차적으로 읽습니다 .
먼저 돼지갈비 만드는 법 - 고기 담고 소금 , 후추 , 감자 껍질을 벗기고
왼쪽 에는 이벤트 - 오른쪽 기능 몇 가지 테마 - 쉬운 경우가 아니면 없습니다 !


돼지 갈비 만드는 법을 읽은 후 시작 합니다 . 스테이크 25분을 먹고 끝 나기 시작 했습니다 .
5분이 지났습니다 M5 (5분 후) 우리 요리책 의 다음 포인트를 읽기 시작합니다 .
두 번째 샐러드 만드는 법 - 당근 껍질 벗기기 , 양파 껍질 벗기기 잡다한 것들


그리고 여기 에서 마법이 일어납니다 . 왜냐하면 그것이 double , 메이플 (2인칭) 을 생성했기 때문 입니다. 우리 돼지 갈비 샐러드 에서 동시에 이것을 합니다 . 우리는 부엌에서 두 사람이 사람 되기 시작합니다 .

더 많은 포인트 를 읽을 수록 주방에 더 많은 사람들나타납니다. 주방에 있는 사람들 일을 마치고 설거지를 마치고 사라집니다 .


이벤트 양초입니다 - 매수 및 매도 또는 마감 을 위한 다양한 옵션이 있습니다 .