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

 
음, 올바른 코드를 볼 수 있습니까?
 
sergeev :
첫 번째 비구매 주문에서 계정에 구매 주문이 넘쳐납니다.


고맙습니다! 또 다른 버그를 발견했습니다!

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

extern double lots= 0.1 ;
extern int SlipPage= 3 ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if ( OrdersTotal ()== 0 )
   OrderSend ( Symbol (),OP_BUY,lots, NormalizeDouble (Ask, Digits ),SlipPage, 0 , 0 , NULL , 0 , 0 , Red );
   for ( int j = 0 ; j < OrdersTotal (); j++)
   {
     OrderSelect (j, SELECT_BY_POS, MODE_TRADES);
     if ( OrderSymbol () == Symbol ())
     {
       if ( OrderType () != OP_BUY)
       OrderSend ( Symbol (),OP_BUY,lots, NormalizeDouble (Ask, Digits ),SlipPage, 0 , 0 , NULL , 0 , 0 , Red );
     }
   }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
icas :


고맙습니다! 또 다른 버그를 발견했습니다!


네.

그러나 이전 것은 수정되지 않았습니다.

주문 개시를 사이클에 직접 삽입할 수 없습니다. 먼저 주문 전체를 순환하고 Bai가 있는지 여부를 정확히 알아내야 합니다.

그리고 그 후에 만 바이를이주기 후에 넣습니다.

 
sergeev :

네.

그러나 이전 것은 수정되지 않았습니다.

주문 개시를 루프에 직접 삽입할 수 없습니다. 먼저 주문 전체를 순환하고 구매 여부를 정확히 파악해야 합니다.

그리고 그 후에만 Bai를 넣어, 아직 거기에 없다면.



맞습니다. 수정 없이 포스트 프로그램에서 일부만 가져왔습니다. 이제 할게요 - 5분 ...
 
하지만 이 코드는 잘못되었습니다! 다른 핀에 대한 다른 주문이 없는 경우에만 구매 주문 을 엽니다. 악기가 있는 경우에는 구매를 열지 않습니다.
 
icas :

맞습니다. 수정 없이 포스트 프로그램에서 일부만 가져왔습니다. 이제 할게요 - 5분 ...
 //+------------------------------------------------------------------+
//|                                                      OnlyBuy.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

extern double lots= 0.1 ;
extern int SlipPage= 3 ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   for ( int j = 0 ; j < OrdersTotal (); j++)
   {
     OrderSelect (j, SELECT_BY_POS, MODE_TRADES);
     if ( OrderSymbol () == Symbol ())
     {
       if ( OrderType () == OP_BUY) return ( 0 );
     }
   }
   OrderSend ( Symbol (),OP_BUY,lots, NormalizeDouble (Ask, Digits ),SlipPage, 0 , 0 , NULL , 0 , 0 , Red );
   Sleep ( 10000 ); //Пауза 10 сек. для исполнениея ордера
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
지금 맞습니까?
 
icas :
지금 맞습니까?
 Sleep ( 10000 ); //Пауза 10 сек. для исполнениея ордера

이 일시 중지가 필요한 이유는 무엇입니까?
 
kolyango :

이 일시 중지가 필요한 이유는 무엇입니까?

주문은 즉시 실행되지 않습니다. 다음 틱에 일시 중지가 없으면 주문이 아직 열리지 않을 수 있으며 프로그램은 다시 열도록 명령을 보냅니다. MT5에서는 이미 테스터에 실행 지연을 입력할 수 있습니다.
 
icas :
지금 맞습니까?

직위 유무 검색을 별도의 기능으로 만들어 보셨나요?

예를 들어:

 bool ExistPositions( int mn, string sy= "" , int op=- 1 ) {
   if (sy== "" ) sy= Symbol ();
   for ( int i= 0 ; i< OrdersTotal (); i++) {
       if ( OrderSelect (i, SELECT_BY_POS)) {
         if ( OrderMagicNumber ()!=mn)   continue ;
         if ( OrderSymbol ()!=sy)         continue ;
         if ( OrderType ()> 1 )             continue ;
         if (op< 0 || OrderType ()==op)  
             return (True);
         }
      }
   return (False);
}

Magic - 어드바이저의 매직 넘버(설정에서 설정되거나 어드바이저가 자동으로 생성함). 그런 다음 현재 기호에 대한 Bai 위치가 없는지 확인하려면 다음을 작성해야 합니다.

 if (!ExistPositions(Magic, Symbol (), OP_BUY)) {
   // ... Тут код для вызова функции открытия позиций ... 
   }

참고 - 단순히 구매 주문을 여는 명령이 아니라 서버에서 반환된 주문 및 오류를 열기 위한 모든 매개 변수를 처리하는 본격적인 기능입니다.

그러나 테스터의 경우 유효한 값에 대한 입력 매개변수를 확인하여 얻을 수 있습니다...

 
artmedia70 :

직위 유무 검색을 별도의 기능으로 만들어 보셨나요?

예를 들어:

그런 다음 현재 기호에 대한 Bai 위치가 없는지 확인하려면 다음을 작성해야 합니다.

참고 - 단순히 구매 주문을 여는 명령이 아니라 서버에서 반환된 주문 및 오류를 열기 위한 모든 매개 변수를 처리하는 본격적인 기능입니다.

그러나 테스터의 경우 유효한 값에 대한 입력 매개변수를 확인하여 얻을 수 있습니다...



첫 번째 포스트에 기능을 부여했는데, kolyango 는 그것을 좋아하지 않았습니다. 게다가 나는 마술사들과 일하는 것을 좋아하지 않는다.