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

 
흠.... 글쎄요, 개인적으로 모든 것이 올바르게 작성되었다고 생각합니다. 문제는 코드 조각의 배치에 있습니다.... 올바르게 배치할 수 있습니까? 나는 그것을하는 방법을 이해하지 못한다
 
splxgf :
솔직히 말해서 한 기능을 다른 기능의 범위 내에서 설명할 수 있는지는 모르겠지만 그런 것은 본 적이 없습니다.
당신은 우리를 어두운 사람들을 혼동하지 않습니다. 이 분기의 수준에서는 모든 사용자 정의 함수가 시작 함수 외부에 있어야 한다고 명시하는 것으로 충분합니다.
 
CLAIN :
흠.... 글쎄요, 개인적으로 모든 것이 올바르게 작성되었다고 생각합니다. 문제는 코드 조각의 배치에 있습니다.... 올바르게 배치할 수 있습니까? 나는 그것을하는 방법을 이해하지 못한다

글쎄, 나는 그것을 게시하지 않을 것이지만 이미 작성되었으므로 외부의 모든 사용자 정의 함수가 시작됩니다.

개념 수준에서

시작(){}

MACD{}

신호 분석(){}

별도의 파일에서 사용자 정의 함수에 대한 설명을 제거하고 프로그램의 나머지 부분이 잘못된 대괄호에 대한 메시지 없이 컴파일되는지 확인하고 각 함수를 결과 코드의 맨 끝에 복사합니다.

 

감사합니다, 모든 것이 밝혀졌습니다 =) 그는 거래를 열지 않았지만 이것은 이미 사소한 일입니다 =) 당신이 없었다면 나는 그것을하지 않았을 것입니다)

 //+------------------------------------------------------------------+
//|                                                     MACD ^^^.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 TP = 100 ; 
extern int TS = 100 ;
extern double lots = 0.1 ;
int slip = 3 ;
int Magic = 1 ;

int total;
int ticket = 0 ; //объявил тотал и тикет



//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----


int signal = signal_MACD(); 
AnalyzeSignal(signal);




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






int signal_MACD()
{
   int MACD[ 8 ] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 };
MACD[ 0 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 7 );
MACD[ 1 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 6 );
MACD[ 2 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 5 );
MACD[ 3 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 4 );
MACD[ 4 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 3 );
MACD[ 5 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 2 );
MACD[ 6 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 1 );
MACD[ 7 ] = iMACD ( Symbol (), 1 , 5 , 34 , 5 , PRICE_CLOSE ,MODE_MAIN, 0 );
   total = OrdersTotal ();
   if (total< 1 )
   {
       if (MACD[ 0 ]< 0 )
      {
         if (MACD[ 1 ]> 0 )
         {
             if (MACD[ 2 ]> 0 )
            {
               if (MACD[ 3 ]> 0 )
               {
                   if (MACD[ 4 ]> 0 )
                  {
                     if (MACD[ 5 ]> 0 )
                     {
                         if (MACD[ 6 ]> 0 )
                        {
                           if (MACD[ 7 ]< 0 )
                           {
                               return (- 100 );
                           }
                        }
                     }
                  }
               }
            }
         }
      }
       if (MACD[ 0 ]> 0 )
      {
         if (MACD[ 1 ]< 0 )
         {
             if (MACD[ 2 ]< 0 )
            {
               if (MACD[ 3 ]< 0 )
               {
                   if (MACD[ 4 ]< 0 )
                  {
                     if (MACD[ 5 ]< 0 )
                     {
                         if (MACD[ 6 ]< 0 )
                        {
                           if (MACD[ 7 ]> 0 )
                           {
                               return ( 100 );
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

void AnalyzeSignal( int signal)
{
   if (signal == 100 )
   {
      ticket = OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , "покупаем" ,Magic, 0 , Green );
       if (ticket> 0 )
      {
         OrderSelect (ticket,SELECT_BY_TICKET);
         Print ( "открылись на покупку по цене:" , OrderOpenPrice ());
      }
       else
      {
         Print ( "открыться не удалось по причине:" , GetLastError ());
         return ( 0 );
      }
   }
   if (signal == - 100 )
   {
      ticket = OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , "Продаем" ,Magic, 0 , Green );
       if (ticket> 0 )
      {
         OrderSelect (ticket,SELECT_BY_TICKET);
         Print ( "открылись на продажу по цене:" , OrderOpenPrice ());
      }
       else
      {
         Print ( "открыться не удалось по причине:" , GetLastError ());
         return ( 0 );
      }
   }
}

 

프로그래머의 조언이 필요합니다


화신
하나
Metamql 20.09.2011 14:31
친애하는 전문가, 조언을 도와주세요. 기간이 5와 60인 이동 평균이 두 가지 있습니다. 빠른 MA가 느린 MA를 상향 + 필터에서 교차하면 매수 거래가 열립니다. 문제는 어떻게 강제로 거래를 한 번만 열고 닫았을 때 새로운 거래를 열지 못하게 하느냐 하는 것인데, 아무리 적당한 여건이 있어도 역 교차가 일어날 때까지 말이다.
 

안녕하세요.

도와주세요 - 196페이지에 있는 내 게시물에 답변해 주세요(int MAGIC에 대한 질문)

미리 감사드립니다.

 
nemo811 :

안녕하세요.

도와주세요 - 196페이지에 있는 내 게시물에 답변해 주세요(int MAGIC에 대한 질문)

미리 감사드립니다.


그리고 매개변수가 있는 함수가 수행하려고 했습니다. 외부 전역 변수 를 사용하지 않기 위해(각각 자신의 방식으로 이름을 지정할 수 있음)
 
sergeev :

프로그래머의 조언이 필요합니다


하나
Metamql 20.09.2011 14:31
친애하는 전문가, 조언을 도와주세요. 기간이 5와 60인 이동 평균이 두 가지 있습니다. 빠른 MA가 느린 MA를 상향 + 필터에서 교차하면 매수 거래가 열립니다. 문제는 어떻게 강제로 거래를 한 번만 열고 닫았을 때 새로운 거래를 열지 못하게 하느냐 하는 것인데, 아무리 적당한 여건이 있어도 역 교차가 일어날 때까지 말이다.

더 이상 열리는 것을 금지하는 깃발을 설정하고 뒤로 건너갈 때 깃발을 제거하면 잡담을 없애기 위해 몇 개의 막대를 지연시킬 수 있습니다
 
Vinin :

그리고 매개변수가 있는 함수가 수행하려고 했습니다. 외부 전역 변수를 사용하지 않기 위해(각각 자신의 방식으로 이름을 지정할 수 있음)

저것들. 유형:

 int OrdTicket_b( int MAGIC)
 {
   string SMB= Symbol ();
   int OrdTicket;
   int i;
   for (i= 0 ;i< OrdersTotal ();i++)
   {
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
     {
       if ( OrderSymbol ()==SMB)
       {
         if ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 )
         {
           if ( OrderType ()==OP_BUY || OrderType ()==OP_SELL)
           {
            OrdTicket= OrderTicket ();
           }  
         }  
       }          
     }
   }
   return (OrdTicket);
 }

???

...그리고 조건

     if ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 )

제대로 추적할 것인가?

 
nemo811 :

저것들. 유형:

???

...그리고 조건

제대로 추적할 것인가?


 int OrdTicket_b( int lMAGIC)
 {
   string SMB= Symbol ();
   int OrdTicket= 0 ;
   int i;
   for (i= 0 ;i< OrdersTotal ();i++)
   {
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
     {
       if ( OrderSymbol ()==SMB)
       {
         if ( OrderMagicNumber ()==lMAGIC)
         {
           if ( OrderType ()==OP_BUY || OrderType ()==OP_SELL)
           {
            OrdTicket= OrderTicket ();
           }  
         }  
       }          
     }
   }
   return (OrdTicket);
 }
이와 같이 OrdTicket 변수를 기본값으로 설정해야 합니다. 그런 다음 열린 위치 가 없지만 함수는 무언가를 반환합니다.