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

 
어느 쪽인지 알려주실 수 있나요? 나는 2. MACD와 이동 평균 을 가지고 있습니다.
 

초보자를 도와주세요. 다음과 같은 코드를 작성하는 방법:

우리는 시장 주문을 확인하고 우리 금융 상품에 대한 시장 주문이 없으면 구매합니까?

그리고 실제 가격에서 500포인트 떨어진 위치에서 Trailing Stop을 재정렬하는 코드 라인도 필요합니다.

돕다!!!

그리고 어느 섹션(정확히 어디에서 어디로)?

 //+------------------------------------------------------------------+
//|                                                  MACD Sample.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

extern double TakeProfit = 50 ;
extern double Lots = 0.1 ;
extern double TrailingStop = 30 ;
extern double MACDOpenLevel= 3 ;
extern double MACDCloseLevel= 2 ;
extern double MATrendPeriod= 26 ;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double MacdCurrent, MacdPrevious, SignalCurrent;
   double SignalPrevious, MaCurrent, MaPrevious;
   int cnt, ticket, total;
// initial data checks
// it is important to make sure that the expert works with a normal
// chart and the user did not make any mistakes setting external 
// variables (Lots, StopLoss, TakeProfit, 
// TrailingStop) in our case, we check TakeProfit
// on a chart of less than 100 bars
   if ( Bars < 100 )
     {
       Print ( "bars less than 100" );
       return ( 0 );  
     }
   if (TakeProfit< 10 )
     {
       Print ( "TakeProfit less than 10" );
       return ( 0 );   // check TakeProfit
     }
// to simplify the coding and speed up access
// data are put into internal variables
   MacdCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 0 );
   MacdPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 1 );
   SignalCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 0 );
   SignalPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 1 );
   MaCurrent= iMA ( NULL , 0 ,MATrendPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
   MaPrevious= iMA ( NULL , 0 ,MATrendPeriod, 0 , MODE_EMA , PRICE_CLOSE , 1 );

   total= OrdersTotal ();
   if (total< 1 ) 
     {
       // no opened orders identified
       if ( AccountFreeMargin ()<( 1000 *Lots))
        {
         Print ( "We have no money. Free Margin = " , AccountFreeMargin ());
         return ( 0 );  
        }
       // check for long position (BUY) possibility
       if (MacdCurrent< 0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
         MathAbs (MacdCurrent)>(MACDOpenLevel* Point ) && MaCurrent>MaPrevious)
        {
         ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 , 0 ,Ask+TakeProfit* Point , "macd sample" , 16384 , 0 , Green );
         if (ticket> 0 )
           {
             if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "BUY order opened : " , OrderOpenPrice ());
           }
         else Print ( "Error opening BUY order : " , GetLastError ()); 
         return ( 0 ); 
        }
       // check for short position (SELL) possibility
       if (MacdCurrent> 0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && 
         MacdCurrent>(MACDOpenLevel* Point ) && MaCurrent<MaPrevious)
        {
         ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 , 0 ,Bid-TakeProfit* Point , "macd sample" , 16384 , 0 , Red );
         if (ticket> 0 )
           {
             if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "SELL order opened : " , OrderOpenPrice ());
           }
         else Print ( "Error opening SELL order : " , GetLastError ()); 
         return ( 0 ); 
        }
       return ( 0 );
     }
   // it is important to enter the market correctly, 
   // but it is more important to exit it correctly...   
   for (cnt= 0 ;cnt<total;cnt++)
     {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if ( OrderType ()<=OP_SELL &&   // check for opened position 
         OrderSymbol ()== Symbol ())   // check for symbol
        {
         if ( OrderType ()==OP_BUY)   // long position is opened
           {
             // should it be closed?
             if (MacdCurrent> 0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
               MacdCurrent>(MACDCloseLevel* Point ))
                {
                 OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , Violet ); // close position
                 return ( 0 ); // exit
                }
             // check for trailing stop
             if (TrailingStop> 0 )  
              {                 
               if (Bid- OrderOpenPrice ()> Point *TrailingStop)
                 {
                   if ( OrderStopLoss ()<Bid- Point *TrailingStop)
                    {
                     OrderModify ( OrderTicket (), OrderOpenPrice (),Bid- Point *TrailingStop, OrderTakeProfit (), 0 , Green );
                     return ( 0 );
                    }
                 }
              }
           }
         else // go to short position
           {
             // should it be closed?
             if (MacdCurrent< 0 && MacdCurrent>SignalCurrent &&
               MacdPrevious<SignalPrevious && MathAbs (MacdCurrent)>(MACDCloseLevel* Point ))
              {
               OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Violet ); // close position
               return ( 0 ); // exit
              }
             // check for trailing stop
             if (TrailingStop> 0 )  
              {                 
               if (( OrderOpenPrice ()-Ask)>( Point *TrailingStop))
                 {
                   if (( OrderStopLoss ()>(Ask+ Point *TrailingStop)) || ( OrderStopLoss ()== 0 ))
                    {
                     OrderModify ( OrderTicket (), OrderOpenPrice (),Ask+ Point *TrailingStop, OrderTakeProfit (), 0 , Red );
                     return ( 0 );
                    }
                 }
              }
           }
        }
     }
   return ( 0 );
  }
// the end.

아니, 이건 말도 안되는 소리야! 주문이 있는 경우: 최소한 보류 중, 최소한 시장, 더욱이 모든 지느러미에 대해. 다음 코드로 주문을 열 수 없습니다.

   total= OrdersTotal ();
   if (total< 1 )

주문 중 하나 미만이 있으면 추가로 실행됩니다. 아니면 내가 틀렸습니까?

 

MovingAverage 에서 CalculateCurrentOrders(Symbol()) 를 가져오면 기호 = 작동 방향과 함께 기호 및 매직으로 필터링한 미결 주문 수 값을 반환합니다. 예를 들어 -1은 1개의 판매 주문을 의미합니다. 필요한 경우 MathAbs()를 사용하여 기호를 무시합니다.

위의 코드에서 후행을 가져옵니다.

// 후행 중지를 확인합니다. 여기에는 주석도 있습니다.

if(TrailingStop>0) { ... }, 구매 및 판매를 위한 2곳에 있습니다. 모든 것이 간단합니다. 아니면 김이고르의 기성품 기능을 사용하거나 어딘가에 특별한 스레드가 있습니다. 그것들은 보다 보편적이고 실제 거래에 더 정확하지만 초보자에게는 조금 더 이해하기 어렵습니다. 일반적으로 이 mql은 당신에게 주어졌습니다. 그들이 정말로 성배를 발명했습니까?

추신 디버깅을 위해 Print()를 사용하면 매우 유용합니다.

 
rusa : 큰 요청입니다. 이 기능을 어드바이저에 직접 입력할 수 있습니까? 그림은 한 막대에서 열린 3개의 주문을 보여줍니다. 그리고 당신은 하나만 필요합니다. 나는 코드를 고칠 수 없습니다. 감사합니다.

귀하의 코드를 조사하기 시작했습니다. 놀랐어요. 당신이 게시한 것은 작동하지 않습니다. 조각으로 조립된 것을 볼 수 있지만 최소한 브래킷이 올바르게 배치되고 변수가 정의되었습니다. 그리고 신호와 함께 - 무기한, 예를 들어 "rsi>30" - RSI 표시기의 값 또는 다른 것은 무엇을 의미합니까? 시작 함수 내부에는 Trade_BUY()... 함수가 중첩되어 있습니다.

일반적으로 작동한 전체 코드(열린 주문)를 제공하거나 신호, 후행 등에 대한 기술 사양을 입력하면 처음부터 작성하는 것이 더 쉬울 것입니다.

 
nuan :

2년 동안 MICEX 견적을 다운로드하는 방법에 대한 자세한 지침을 찾을 수 있습니다. 예를 들어 Lukoil은 재무 정보를 제공하지 않습니다. 기간이 너무 길고

올바르게 변환하고 mt4에서 여는 방법, 링크가 있는 경우 이 작업을 수행하는 방법에 대한 링크를 제공하십시오.

추신 미리 감사드립니다.


여기 맘바 몇 년 동안
http://zalil.ru/31909547
 
kolyango :

초보자를 도와주세요. 다음과 같은 코드를 작성하는 방법:

우리는 시장 주문을 확인하고 우리 금융 상품에 대한 시장 주문이 없으면 구매합니까?

그리고 실제 가격에서 500포인트 떨어진 위치에서 Trailing Stop을 재정렬하는 코드 라인도 필요합니다.

돕다!!!

그리고 어느 섹션(정확히 어디에서 어디로)?

아니, 이건 말도 안되는 소리야! 주문이 있는 경우: 최소한 보류 중, 최소한 시장, 더욱이 모든 지느러미에 대해. 다음 코드로 주문을 열 수 없습니다.

주문 중 하나 미만이 있으면 추가로 실행됩니다. 아니면 내가 틀렸습니까?


어쩌면 그렇게?

(int i = 0; i < OrdersTotal(); i++)
{
주문 선택(i,SELECT_BY_POS, MODE_TRADES );
if (OrderSymbol() == ... 쌍)
{
if(주문유형() == OP_BUY || 주문유형() == OP_SELL)
{
OrderSend(Symbol(),OP_BUY, .......

}
}
}

 

도움이 필요하다:

선이 끊어지면 일반적인 이동 평균 표시기, 매수(위) 또는 매도(아래) 신호가 나타납니다.

그래픽 개체에 대해 기성품 코드가 있는 사람이 있습니까 ???, 레이아웃할 수 있습니다!

고맙습니다.

 
그러한 칠면조는 데이터베이스에 있습니다
 
ZZZEROXXX :
그러한 칠면조는 데이터베이스에 있습니다
나는 링크를 주셔서 감사합니다.
 

안녕하세요! 성장/하강을 위해 막대 검사를 "루프"하는 방법을 알려주실 수 있습니까? 즉, 이 상태를 가능한 한 짧게 설명합니다.

닫기[0]>열기[0]&& 닫기[1]>열기[1]&& 닫기[2]>열기[2]&& 닫기[3]>열기[3]&& 닫기[4]>열기[4]&& 닫기[5]>열기[5]&& 닫기[6]>열기[6]&& 닫기[7]>열기[7]

미리 감사드립니다.