여기서 무슨 문제가 있습니까? - 페이지 4

 
sss2019 :
그리고 또 무엇이 될까요?

직접 확인하고 알게 될 것입니다.
 
sergeev :

직접 확인하고 알게 될 것입니다.
왜 건네주기만 해, 성을 묻지도 않았어. 이것은 조커입니다. 주문을 열 필요도 없으며 조용히 주머니에 젓습니다.
 
그러나 Shkledyatina! 그게 다야, 네, 네.
 

그리고이 주문이 열리지 않은 이유는 무엇입니까? 실수는 무엇입니까?

 //+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

extern int MaFastPeriod = 30 ;
extern int MaSlowPeriod = 90 ;
extern int StopLoss = 25 ;
extern int TakeProfit = 50 ;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
double MaFast = iMA ( Symbol (), 0 ,MaFastPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
double MaSlow = iMA ( Symbol (), 0 ,MaSlowPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
   
   if ( OrdersTotal () == 0 && MaFast > MaSlow)
   {
   OrderSend ( Symbol (), 0 , 0.1 ,Ask, 3 ,Ask+TakeProfit* Point ,Ask-StopLoss* Point , "CommentA" , 0 , 0 , Green );
   } else
   {
       if ( GetLastError () != 0 )
         {
         Alert ( "Ошибка" , GetLastError ());
         }
   }
   
   return ( 0 );
  }
 
시그널 바에서만 거래 개시를 구현하는 방법을 알려주실 수 있습니까?

예를 들어, 하나의 이동 평균이 다른 이동 평균 과 교차하면 하나의 거래가 열리지만 이 거래를 닫으면 신호 하나에서 몇 막대 떨어져 있어도 다른 거래가 열립니다.
 
sss2019 :
원칙적으로 시그널바에서만 거래를 여는 방법을 알려주실 수 있나요?

예를 들어, 하나의 이동 평균이 다른 이동 평균과 교차하면 하나의 거래가 열리지만 이 거래를 닫으면 신호 하나에서 몇 막대 떨어져 있어도 다른 거래가 열립니다.
당신은 확실히 Google과 FAQ에서도 금지되어 있습니다.
먼저 두 MA의 교차 신호를 얻는 방법은 무엇입니까?

다음으로, 하나의 주문 사이트만 열기와 같은 Google 쿼리:mql4.com
 

예, 하나의 주문을 여는 방법을 알고 있지만 전체 문제는 한 주문이 열리고 몇 시간 후에 닫히고 열기에 대한 모든 조건이 여전히 저장되어 있으면 다른 주문이 열립니다. 이미 시그널 바에서 멀어졌습니다.

당신의 링크를 볼 것입니다, 감사합니다.

 
sss2019 :

예, 하나의 주문을 여는 방법을 알고 있지만 전체 문제는 한 주문이 열리고 몇 시간 후에 닫히고 열기에 대한 모든 조건이 여전히 저장되어 있으면 다른 주문이 열립니다. 이미 시그널 바에서 멀어졌습니다.

당신의 링크를 볼 것입니다, 감사합니다.


오픈 주문을 허용하는 플래그를 설정합니다. 신호가 왔고 플래그가 허용합니다. 우리는 포즈를 열고 즉시 깃발을 제거합니다. 잠시 후 게시물이 닫혔습니다. EA는 신호가 있음을 확인하지만 플래그가 지워집니다(주문하는 것은 금지됨). 결과적으로 주문이 이루어지지 않습니다.

더 나아가. 신호가 없으면 플래그를 설정합니다(여는 포즈 허용). 또는 새로운 신호가 나타나자 마자 플래그를 설정합니다. 그러나 두 번째 경우에는 Advisor가 새 신호와 이전 신호를 구별할 수 있어야 합니다.

 

drknn :



오픈 주문을 허용하는 플래그를 설정합니다. 신호가 왔고 플래그가 허용합니다. 우리는 포즈를 열고 즉시 깃발을 제거합니다. 잠시 후 게시물을 닫았습니다. EA는 신호가 있음을 확인하지만 플래그가 지워집니다(주문하는 것은 금지됨). 결과적으로 주문이 이루어지지 않습니다.

더 나아가. 신호가 없으면 플래그를 설정합니다(여는 포즈 허용). 또는 새로운 신호가 나타나자 마자 플래그를 설정합니다. 그러나 두 번째 경우에는 Advisor가 새 신호와 이전 신호를 구별할 수 있어야 합니다.


와우 감사합니다, 저는 이 방법이 더 보편적이라고 생각합니다.

그건 그렇고, 주문이 열렸음을 어드바이저에서 선언하는 방법 OrderSend는 내가 이해한대로 주문 티켓 만 전송합니다. OrderSelect를 사용하여 구현할 수 있습니다. 작동합니까?

 

글쎄, 제발, 내가 거기에서 엉망이 된 것이 있고 주문이 지금 열리지 않습니다.

 //+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

extern int MaFastPeriod = 30 ;
extern int MaSlowPeriod = 90 ;
extern int StopLoss = 25 ;
extern int TakeProfit = 50 ;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
   double MyPoint = Point ;
   if ( Digits == 3 || Digits == 5 )
      {
      MyPoint = Point * 10 ;
      }
      
double MaFast = iMA ( Symbol (), 0 ,MaFastPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
double MaSlow = iMA ( Symbol (), 0 ,MaSlowPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );

   for ( int SelectedOrder = 0 ; SelectedOrder < OrdersTotal (); SelectedOrder++)
      {
         bool Flag = false;
         if ( OrderSelect (SelectedOrder,SELECT_BY_POS,MODE_TRADES)==True)
            {
            Flag = false;
            }
      }
   return (Flag);
   
   if ( OrdersTotal () == 0 && MaFast > MaSlow && Flag == false)
      {
       OrderSend ( Symbol (), 0 , 0.1 ,Ask, 30 ,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint, "CommentA" , 0 , 0 , Green );
      }
   
   return ( 0 );
  }