포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 748

 
AlexeyVik :


그리고 이 코드는

init()에 작성하는 것이 좋으며 하지 않는 것이 좋습니다.

그런 다음 start()에서

과학에 감사드립니다. 그럼에도 불구하고 질문은 열려 있습니다. 작동할 때까지 가격에 대한 프랙탈을 따라 매수 정지가 추적(수정)되어야 하며 매도 정지도 같은 방식입니다.
 
xant :
나는 질문을 제거하고 스스로 알아 냈습니다.
디컴파일러를 사용하지 마십시오. 코드를 완전히 재작업하는 것이 좋습니다.
 
Petiyashaket :
과학에 감사드립니다. 그럼에도 불구하고 질문은 열려 있습니다. 작동할 때까지 가격에 대한 프랙탈을 따라 매수 정지가 추적(수정)되어야 하며 매도 정지도 같은 방식입니다.

코드에서 빨간색으로 강조 표시된 질문은 어떻습니까?

 if (Up> 0 &&Down== 0 &&Volume[ 0 ]< 2 )     //если верхний фрактал есть а нижнего нету и прошло не больше 2х тиков то:
    {
     if ((High[ 3 ]+ 5 * Point -Ask)/ Point >MarketInfo( Symbol (),MODE_STOPLEVEL)) //если расстояние 0 бара от хая фрактала позволяет то:
     OrderSend ( Symbol (),OP_BUYSTOP,Lot,High[ 3 ]+ 5 * Point , 20 ,High[ 3 ]-sl,High[ 3 ]+tp, NULL ,Magic, 0 ,Green); //выставляем отложенный на покупку
     else {BS=High[ 3 ]+ 5 * Point ; Print ( "Виртуальный BS:" ,BS);} // а ели нет то запоминаем(позже будет добавлен вход с рынка)
         { // К чему относится эта скобка???
         for ( int pos= 0 ;pos== OrdersTotal ();pos++)
         OrderSelect (pos,SELECT_BY_POS,MODE_TRADES);
         if (OrderMagicNumber()==Magic&&OrderSymbol()== Symbol ()&&OrderType()==OP_BUYSTOP)
          {
          OrderModify(OrderTicket(),Up+ 5 * Point ,High[ 3 ]-sl,High[ 3 ]+tp, 0 ,CLR_NONE);
          }
         } // это пара к той...
     
       }  

결코 대답하지 않았다. 그리고 이것부터 코드 실행 결과가 달라집니다.

 
AlexeyVik :

코드에서 빨간색으로 강조 표시된 질문은 어떻습니까?

결코 대답하지 않았다. 그리고 이것부터 코드 실행 결과가 달라집니다.

조건에서 Volume[ 0 ]< 2를 사용하는 이유는 무엇입니까?

때로는 한 팩이 한 틱으로 제공됩니다. 그리고 이 막대에서는 조건이 더 이상 작동하지 않습니다.

 
Vinin :

조건에서 Volume[ 0 ]< 2를 사용하는 이유는 무엇입니까?

때로는 한 팩이 한 틱으로 제공됩니다. 그리고 이 막대에서는 조건이 더 이상 작동하지 않습니다.

빅터, 이 질문은 나를 위한 것이 아닙니다. 나는 이 기능을 사용한다

bool NewBar()
{
   static datetime lastbar = iTime( _Symbol , PERIOD_H1 , 0 ); // Период можно менять по желанию
   datetime curbar = iTime( _Symbol , PERIOD_H1 , 0 );         // и будет отсчитывать новый бар заданного периода на любом ТФ
   if (lastbar != curbar)
    {
     lastbar = curbar;
     return ( true );
    }
   else return ( false );
} //******************************************************************|

대괄호에 대해 질문하기 위해 코드를 복사했습니다.

 
Vinin :

조건에서 Volume[ 0 ]< 2를 사용하는 이유는 무엇입니까?

때로는 한 팩이 한 틱으로 제공됩니다. 그리고 이 막대에서는 조건이 더 이상 작동하지 않습니다.

이것은 Oleg Remizov가 YouTube에서 가르치는 방식입니다. 이 조건은 뉴스 거래와 무스를 잡는 것을 제한합니다. :)
 
Petiyashaket :
이것은 Oleg Remizov가 YouTube에서 가르치는 방식입니다. 이 조건은 뉴스 거래와 무스를 잡는 것을 제한합니다. :)
나는 레미조프에 대해 아무 말도 하고 싶지 않다. 그러나 코드가 막대를 건너뛰더라도 화를 내지 마십시오. 좋아, 몇 분이면 (물론 어떤 시간 프레임으로 설정) 시계 이상으로 운전하면 동정하기 만하면됩니다.
 
AlexeyVik :

코드에서 빨간색으로 강조 표시된 질문은 어떻습니까?

결코 대답하지 않았다. 그리고 이것부터 코드 실행 결과가 달라집니다.

모든 면에서 대괄호를 실험하고 삭제하고 추가해도 결과는 동일합니다.
 
Petiyashaket :
모든 면에서 대괄호를 실험하고 삭제하고 추가해도 결과는 동일합니다.

예, 실험할 필요가 없습니다. 이 괄호의 의미와 적용 방법을 명확하게 이해해야 합니다. 이것은 문서에 기록되어 있으며 나는 강의하지 않을 것입니다.

 if (Up> 0 &&Down== 0 &&Volume[ 0 ]< 2 )     //если верхний фрактал есть а нижнего нету и прошло не больше 2х тиков то:
    {
     if ((High[ 3 ]+ 5 * Point -Ask)/ Point >MarketInfo( Symbol (),MODE_STOPLEVEL)) //если расстояние 0 бара от хая фрактала позволяет то:
     OrderSend ( Symbol (),OP_BUYSTOP,Lot,High[ 3 ]+ 5 * Point , 20 ,High[ 3 ]-sl,High[ 3 ]+tp, NULL ,Magic, 0 ,Green); //выставляем отложенный на покупку
     else {BS=High[ 3 ]+ 5 * Point ; Print ( "Виртуальный BS:" ,BS);} // а ели нет то запоминаем(позже будет добавлен вход с рынка)

        for ( int pos= 0 ;pos== OrdersTotal ();pos++)
        { // наверное сюда её надо
        OrderSelect (pos,SELECT_BY_POS,MODE_TRADES);
         if (OrderMagicNumber()==Magic&&OrderSymbol()== Symbol ()&&OrderType()==OP_BUYSTOP)
          {
          OrderModify(OrderTicket(),Up+ 5 * Point ,High[ 3 ]-sl,High[ 3 ]+tp, 0 ,CLR_NONE);
          }
         } // это пара к той...
     
       }  
그러나 이것은 코드의 일부일 뿐입니다. 그런 다음 비슷한 오해가 있습니다.
 
//+------------------------------------------------------------------+
//|                                                   Strategy 3.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+

#property copyright ""
#property link        ""
#include <Library1.mqh>
extern int Magic= 111 ;
extern int TP= 20 ;
extern int SL= 30 ;
extern int Trall_dist= 10 ;
extern int Shag= 10 ;
extern bool Isp_shag= false ;
extern bool Isp_bezubitok= false ;
extern double Lot= 0.1 ;
double SS= 0 ,BS= 0 ;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   double tp,sl;
   if ( Digits == 3 || Digits == 5 ) {tp=TP* 10 * Point ;sl=SL* 10 * Point ;}
   else if ( Digits == 2 || Digits == 4 ) {tp=TP* Point ;sl=SL* Point ;}
   double Up= iFractals ( Symbol (), 0 ,MODE_UPPER, 3 );
   double Down= iFractals ( Symbol (), 0 ,MODE_LOWER, 3 );
//----
   if (Up> 0 &&Down== 0 &&Volume[ 0 ]< 2 )
    {
     if ((High[ 3 ]+ 5 * Point -Ask)/ Point >MarketInfo( Symbol (),MODE_STOPLEVEL))
     OrderSend ( Symbol (),OP_BUYSTOP,Lot,High[ 3 ]+ 5 * Point , 20 ,High[ 3 ]-sl,High[ 3 ]+tp, NULL ,Magic, 0 ,Green);
 //----   
     for ( int pos= 0 ;pos== OrdersTotal ();pos++)
        {
         OrderSelect (pos,SELECT_BY_POS,MODE_TRADES);
         if (OrderMagicNumber()==Magic&&OrderSymbol()== Symbol ()&&OrderType()==OP_BUYSTOP)
          {
          OrderModify(OrderTicket(),High[ 3 ]+ 5 * Point ,High[ 3 ]-sl,High[ 3 ]+tp, 0 ,CLR_NONE);
          }
        } 
    } 
   else if (Up== 0 &&Down> 0 &&Volume[ 0 ]< 2 )
    {
     if ((Bid-Low[ 3 ]- 5 * Point )/ Point >MarketInfo( Symbol (),MODE_STOPLEVEL))
     OrderSend ( Symbol (),OP_SELLSTOP,Lot,Low[ 3 ]- 5 * Point , 20 ,Low[ 3 ]+sl,Low[ 3 ]-tp, NULL ,Magic, 0 ,Red);
     for (pos=0;pos== OrdersTotal ();pos++)
        {
         OrderSelect (pos,SELECT_BY_POS,MODE_TRADES);
         if (OrderMagicNumber()==Magic&&OrderSymbol()== Symbol ()&&OrderType()==OP_SELLSTOP)
          {
          OrderModify(OrderTicket(),Low[ 3 ]- 5 * Point ,Low[ 3 ]+sl,Low[ 3 ]-tp, 0 ,CLR_NONE);
          }      
        }     
    }    
   
            
     if ( OrdersTotal ()> 0 )
    Trailing_stop(Magic, Symbol (),Trall_dist,Shag,Isp_shag,Isp_bezubitok);
     return ( 0 );
  }
//+------------------------------------------------------------------+
여기에 정확한 사본이 있습니다. 나는 후행 정지점에서 복사했기 때문에 카운터에 대해서만 이해하지 못합니다. 그래서 정지 손실을 프랙탈에 고정할 수 없습니다. 왜냐하면 그것들을 찾는 방법을 모르기 때문입니다. 간단히 말해서, 모든 것은 주기에 달려 있습니다. 이전 코드에서와 같은 주석은 매우 감사할 것입니다.