초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 523

 
내가 시프트(-7)를 설정한 설정에서 고문 자신이 쓴 봉투 표시기 왜 고문은 봉투 표시기에서 음의 이동으로 주문을 열지 않습니까?
 
Vagif Babaev :
내가 시프트(-7)를 설정한 설정에서 고문 자신이 쓴 봉투 표시기 왜 고문은 봉투 표시기에서 음의 이동으로 주문을 열지 않습니까?
iEnvelopes 에서 표시기 버퍼 에서 받은 값의 인덱스는 시프트보다 작지 않아야 합니다. 마지막 값은 7보다 작지 않습니다.
 
demonoid123000 :
친애하는 프로그래머. 도울 수 있니? 어드바이저(게시중)에 '첨부'가 필요한 주문수를 설정합니다. 이것이 도움이 될지 모르겠습니다 .. 나는 설명하려고 노력할 것입니다. 아마도 당신이 저에게 말할 수 있습니다. 나는이 올빼미를 여러 쌍에 두었고 하나의 주문만 열립니다. 그리고 한 쌍에서 주문이 열리면 다른 쌍의 신호는 무시되지 않습니다. 미리 감사드립니다!

이 상태의 문제

 if ( OrderSelect ( 0 , SELECT_BY_POS , MODE_TRADES )== False )

이것이 작동하는 방식입니다

 //+------------------------------------------------------------------+
//|                                                    Hippo_Buy.mq4 |
//|                                                        ut_Kanada |
//|                                            albertgod1972@mail.ru |
//+------------------------------------------------------------------+
#property copyright "ut_Kanada"
#property link        "albertgod1972@mail.ru"
#property version    "1.00"
#property strict
//===================================================================+
//                          ЗАДАНЫЕ ЗНАЧЕНИЯ                         |
//===================================================================+

extern double Lot= 0.1 ;
extern bool Stop = true ;
extern int SL = 250 ;
extern int TP = 500 ;

extern bool BU= false ;         // Переменная для включения Безубытка.

extern bool Tral = true ;       // Переменная для выключения трала.
extern int putr = 100 ;         // Включение трала при прохождении цены putr пунктов.
extern int TrailingStop = 150 ; // Непосредственно сам трал.

                               //*****************************************************************************************************************
//==================================================================+
//                  Переменные для программы                        |
//==================================================================+

int TekBar = - 1 ;             // Текущий бар.
int Or;                       // Номер ордера.
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//==================================================================+

int start()
  {

//==================================================================+
//                           Индикаторы                             |
//==================================================================+

   double TA1= NormalizeDouble ( iCustom ( NULL , 0 , "Trendsignal_Alert_Buy" , 3 , 300 , true , true , 0 , 0 , false , 1 , 0 , 1 ), Digits );

//==================================================================+
//                     Условия модификации Ордеров.                 |
//==================================================================+
   if (Tral== true )
     {
       int cnt;
       for (cnt= OrdersTotal (); cnt>= 0 ; cnt--)
        {
         Or= OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );

         if ( OrderType ()== OP_SELL )
           {
             if ( OrderOpenPrice ()- Ask >=putr* Point )
               if ( OrderStopLoss ()>( Ask + Point *(TrailingStop+ MarketInfo ( Symbol (), MODE_SPREAD ))))
                  Or= OrderModify ( OrderTicket (), OrderOpenPrice (), Ask + Point *TrailingStop, OrderTakeProfit (), 0 , 0 );
           }

         if ( OrderType ()== OP_BUY )
           {
             if ( Bid - OrderOpenPrice ()>=putr* Point )
               if ( OrderStopLoss ()<( Bid - Point *(TrailingStop+ MarketInfo ( Symbol (), MODE_SPREAD ))))
                  Or= OrderModify ( OrderTicket (), OrderOpenPrice (), Bid - Point *TrailingStop, OrderTakeProfit (), 0 , 0 );
           }
        }
     }

//==================================================================+
//                    Условия перевода в Безубыток.                 |
//==================================================================+  

   if (BU== true )
     {
       int cnt;
       for (cnt= OrdersTotal (); cnt>= 0 ; cnt--)
        {
         Or= OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );

         if ( OrderType ()== OP_SELL && OrderStopLoss ()>= OrderOpenPrice ())
           {
             if ( OrderOpenPrice ()- Ask >=putr* Point )
               if ( OrderStopLoss ()>( Ask + Point *(TrailingStop+ MarketInfo ( Symbol (), MODE_SPREAD ))))
                  Or= OrderModify ( OrderTicket (), OrderOpenPrice (), Ask + Point *TrailingStop, OrderTakeProfit (), 0 , 0 );
           }

         if ( OrderType ()== OP_BUY )
           {
             if ( Bid - OrderOpenPrice ()>=putr* Point && OrderStopLoss ()<= OrderOpenPrice ())
               if ( OrderStopLoss ()<( Bid - Point *(TrailingStop+ MarketInfo ( Symbol (), MODE_SPREAD ))))
                  Or= OrderModify ( OrderTicket (), OrderOpenPrice (), Bid - Point *TrailingStop, OrderTakeProfit (), 0 , 0 );
           }
        }
     }

//==================================================================+    
/*
  int q;                                             
  for(q = 1; q <= Bars; q++)
  {
   double TAq = NormalizeDouble(iCustom(NULL,0,"Trendsignal_Alert_Buy",3,300,true,true,0,0,false,1,0,q),Digits);
   if(TAq != 0)
   {
    Comment("TAq = ",TAq);
    break;
   }
  }*/
//==================================================================+
//                    Условия и Открытие Ордеров.                   |
//==================================================================+

   if (Stop== true )
     {
       if (Total_orders( _Symbol )== 0 )
        {
         if (TekBar== Bars ) return ( 0 );
         TekBar= Bars ;
           {
             if (TA1> High [ 1 ] && TA1!= 0 ) // Условия продажи.
               Or= OrderSend ( Symbol (), OP_SELL ,Lot, Bid , 3 , Bid +SL* Point , Bid -TP* Point , "000" , 0 , 0 ,Tomato);         // Продажа.               

             if (TA1< Low [ 1 ] && TA1!= 0 )
               Or= OrderSend ( Symbol (), OP_BUY ,Lot, Ask , 3 , Ask -SL* Point , Ask +TP* Point , "000" , 0 , 0 ,RoyalBlue);       // Покупка.     ;

           }
        }
     }

   if (Stop== false )
     {
       if (Total_orders( _Symbol )== 0 )
        {
         if (TekBar== Bars ) return ( 0 );
         TekBar= Bars ;
           {
             if (TA1> High [ 1 ] && TA1!= 0 ) // Условия продажи.
               Or= OrderSend ( Symbol (), OP_SELL ,Lot, Bid , 3 , 0 , 0 , "000" , 0 , 0 ,Tomato);         // Продажа.                

             if (TA1< Low [ 1 ] && TA1!= 0 )
               Or= OrderSend ( Symbol (), OP_BUY ,Lot, Ask , 3 , 0 , 0 , "000" , 0 , 0 ,RoyalBlue);       // Покупка.     
           }
        }
     }
//----   
   return ( 0 );
  }
//+------------------------------------------------------------------+
int Total_orders( string symbol
                 //int type
                 )
  {
   int n= 0 ;
   int total= OrdersTotal ();

   for ( int i= 0 ; i<total; i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS ))
        {
         //if(OrderType()!=type)continue;
         //if(OrderMagicNumber()!=Magic)continue;
         if ( OrderSymbol ()!=symbol) continue ;
         n++;
        }
     }
   return (n);
  }
//+------------------------------------------------------------------+
 
angel341 :
표시기를 n포인트만큼 위 또는 아래로 이동하는 데 어떤 매개변수 또는 기능이 도움이 되는지 알려주십시오.
추가 매개변수 Shift, 양수 위로 이동, 음수 아래로 이동.
파일:
 
Sergey Gritsay :

이 상태의 문제

이것이 작동하는 방식입니다

프로그래밍 언어를 전혀 몰라요... 한마디로 이해가 안됩니다. 이 값을 변경할 수 있습니까?
 
demonoid123000 :
프로그래밍 언어를 전혀 모릅니다... 한마디로 이해가 안됩니다. 이 값을 변경할 수 있습니까?
그 때 이 코드를 어디서 얻었습니까?
 
Sergey Gritsay :
추가 매개변수 Shift, 양수 위로 이동, 음수 아래로 이동.
매우 감사합니다! 지금 바로 테스트 하러 갑니다!
 

Sergey Gritsay :
добавил параметр Shift, положительное число смещение вверх, отрицательное вниз.

정말 감사합니다!

 
Sergey Gritsay :

그는 이런 것을 의미합니다

이 함수의 코드를 실행하면 주문이 삭제됩니까? 코드 시작 부분에서 호출되는 경우:" if(TimeCurrent()>=D'23:50')close_all();return;" 그러면 프로그램이 더 이상 작동하지 않습니다. 즉, 주문이 열리지 않고 로그에 "중지 버튼을 눌렀습니다"라고 표시됩니다. 이 한 줄을 삭제하면 모든 것이 작동하고 열립니다. 무슨 일인지 말해주세요? 나는 세부 사항에 정통하지 않으므로 단순히 함수의 본문을 복사했습니다.
 
toni_stark :
이 함수의 코드를 실행하면 주문이 삭제됩니까? 코드 시작 부분에서 호출되는 경우:" if(TimeCurrent()>=D'23:50')close_all();return;" 그러면 프로그램이 더 이상 작동하지 않습니다. 즉, 주문이 열리지 않고 로그에 "중지 버튼을 눌렀습니다"라고 표시됩니다. 이 한 줄을 삭제하면 모든 것이 작동하고 열립니다. 무슨 일인지 말해주세요? 나는 세부 사항에 정통하지 않으므로 단순히 함수의 본문을 복사했습니다.
당신의 코드는 스튜디오에서 주세요
사유: