MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 80

 
Artyom Trishkin :

테스터에서 다른 캐릭터로? 또는 다른 기호에 대한 데모/실제? 아니면 이 기호의 테스터에서? 또는 이 기호의 데모/실제에서?

당신에게서 무엇을 뽑아야 합니까?

너는 왜? 그것을 시도한 곳에서 어떤 차이가 있습니까? 문제는 Point = 0일 수 있다는 것입니다. 그리고 가능하다면 오류가 발생하지 않도록 코드를 올바르게 작성하는 방법: 0으로 나누기 ?
 
LuckySith :

죄송합니다. 저는 아주 멍청한 사람입니다. 어떻게 되는지 이해가 되지 않습니다.
가장 간단한 코드가 있는 표시기가 있을 수 있습니다. 비유로 이해할 수 있습니까? 내가 찾지 않았기 때문에

여기 막대 중간에 점을 넣는 매우 간단한 코드가 있습니다. 마우스를 가져갔을 때 텍스트가 나타나거나 창이 표시되도록 하려면 어떻게 해야 합니까?



#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_ARROW );
   SetIndexArrow ( 0 , 159 );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexEmptyValue ( 0 , 0.0 );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars= IndicatorCounted ();
   int limit= Bars -counted_bars;
//----  
   for ( int i=limit; i>= 0 ; i--)
     {
       double        fabody0 = fabs ( Close [i]- Open [i]);
       double        fabody1 = fabs ( Close [i+ 1 ]- Open [i+ 1 ]);
       double        fabody2 = fabs ( Close [i+ 2 ]- Open [i+ 2 ]);
       double        fabody3 = fabs ( Close [i+ 3 ]- Open [i+ 3 ]);
       double        fabody4 = fabs ( Close [i+ 4 ]- Open [i+ 4 ]);
       double        fabody5 = fabs ( Close [i+ 5 ]- Open [i+ 5 ]);
       double        fabody6 = fabs ( Close [i+ 6 ]- Open [i+ 6 ]);
       double        fabody7 = fabs ( Close [i+ 7 ]- Open [i+ 7 ]);
       if ((fabody0>fabody1) && (fabody0>fabody2) && (fabody0>fabody3) && (fabody0>fabody4) && (fabody0>fabody5) && (fabody0>fabody6) &&( Volume [i]> Volume [i+ 1 ]))
      {  
         if ((( Close [i]> Open [i])&&( Low [i]+( High [i]- Low [i])/ 2 > Low [i+ 1 ]+( High [i+ 1 ]- Low [i+ 1 ])* 0.9 ))||(( Close [i]< Open [i])&&( Low [i]+( High [i]- Low [i])/ 2 < Low [i+ 1 ]+( High [i+ 1 ]- Low [i+ 1 ])* 0.1 )))
         ExtMapBuffer1[i]=( iHigh ( Symbol (), 0 ,i)+ iLow ( Symbol (), 0 ,i))/ 2 ;
      }
     }
//----
   return ( 0 );
  }
노력하다
파일:
gmxdk8j.mq4  6 kb
 
Gevorg Hakobyan :
너는 왜? 그것을 시도한 곳에서 어떤 차이가 있습니까? 문제는 Point = 0일 수 있다는 것입니다. 그리고 가능하다면 오류가 발생하지 않도록 코드를 올바르게 작성하는 방법: 0으로 나누기 ?
글쎄, 당신이 원하는 무엇이든.
따라서 나누기 전에 제수가 0인지 확인하십시오.
나는 당신이 결과가 아니라 원인과 그에 상응하는 서투른 목발에 관심이 있다고 생각했습니다.
 
Artyom Trishkin :
글쎄, 당신이 원하는 무엇이든.
따라서 나누기 전에 제수가 0인지 확인하십시오.
나는 당신이 결과가 아니라 원인과 그에 상응하는 서투른 목발에 관심이 있다고 생각했습니다.
나는 전체 대화를 읽지 않았지만 소수점 다섯 번째 자리 인쇄에 대해 뭔가 의심됩니다.
 
Alexey Viktorov :
나는 전체 대화를 읽지 않았지만 소수점 다섯 번째 자리 인쇄에 대해 뭔가 의심됩니다.
아니요, Point()로 나누고 0 으로 나눕니다.
여기서도 캐릭터에 대한 데이터를 어디에서 가져오는지 명확한 답변을 얻으려고 노력합니다.

 
Artyom Trishkin :
아니요, Point()로 나누고 0 으로 나눕니다.
여기에서도 나는 뚜렷한 대답을 얻으려고 노력하고 있으며 기호에 대한 데이터를 가져옵니다.

if(v=="NZD")
{
h=(iClose("NZDUSD",p,b)-iOpen("NZDUSD",p,b))/MarketInfo("NZDUSD",MODE_POINT)+
(iOpen("EURNZD",p,b)-iClose("EURNZD",p,b))/MarketInfo("EURNZD",MODE_POINT)+
(iOpen("GBPNZD",p,b)-iClose("GBPNZD",p,b))/MarketInfo("GBPNZD",MODE_POINT)+
(iOpen("AUDNZD",p,b)-iClose("AUDNZD",p,b))/MarketInfo("AUDNZD",MODE_POINT)+
(iClose("NZDJPY",p,b)-iOpen("NZDJPY",p,b))/MarketInfo("NZDJPY",MODE_POINT)+
(iClose("NZDCAD",p,b)-iOpen("NZDCAD",p,b))/MarketInfo("NZDCAD",MODE_POINT)+
(iClose("NZDCHF",p,b)-iOpen("NZDCHF",p,b))/MarketInfo("NZDCHF",MODE_POINT);
}
 
Alexey Viktorov :
나는 전체 대화를 읽지 않았지만 소수점 다섯 번째 자리 인쇄에 대해 뭔가 의심됩니다.
이것이 문제가 될 수 있습니까?
 
Gevorg Hakobyan :
이것이 문제가 될 수 있습니까?
아니요. 이것은 인쇄할 때와 경고에서 다섯 번째 문자만 보이지 않습니다.
 
Alekseu Fedotov :
노력하다
일반적으로 필요한 것이지만 문제는 설명이 상당히 커서이 방법을 사용하면 문자 그대로 몇 단어를 쓸 수 있다는 것입니다. 나머지는 단순히 표시되지 않습니다
 

안녕하세요.

도와주세요.

이제 각 다음 주문의 제비는 1, 2, 3, 4, 5…

매 주문이 아니라 3단계로 많이 늘리고 싶은데,   그래서   1, 1, 1, 2, 2, 2, 3, 3, 3…


extern double    LotStop        = 0.01 ;
extern double    Plus_LotStop   = 0.01 ;
extern double    Plus_N_ORD  = 3 ;         //каждые N ордеров
void OnTick ()
  {
//---
       for ( int i= 1 ; i<=OrdersStop; i++)
   {
         if (( Close [ 1 ]< Open [ 1 ]&& Close [ 2 ]> Open [ 2 ]&&NumberOfPositions( Symbol (), - 1 ,_Magic)< 1 ))
         {
            OPENORDER ( OP_BUYSTOP ,PriceBS,LOTs,_Magic,i);
            numB++;
            PriceBS = NormalizeDouble (PriceBS+Step_Stop* Point , Digits );
          
            OPENORDER ( OP_SELLSTOP ,PriceSS,LOTs,_Magic,i);
            numS++;
            PriceSS = NormalizeDouble (PriceSS-Step_Stop* Point , Digits );
         }
      
      LOTs=LOTs+Plus_LotStop;
      }
  }