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

 

다음 조건이 포함된 코드가 어떻게 생겼는지 알려주십시오. 표시기 색상이 빨간색에서 파란색으로 바뀌면 보류 중인 바이스톱 주문 을 하고, 반대로 칠면조의 색상이 파란색에서 빨간색으로 바뀌면 판매 중지?

 
색상 바꿀때마다 주문하면 많이 나오나요?
 
Notter :

복잡한 복합 조건을 사용하는 것이 허용됩니까?



매우 수용 가능
 
MikeM :
색상 바꿀때마다 주문하면 많이 나오나요?

표시기는 최신 유행이며 매번 색상이 변경되지 않습니다. 막대의 색상 변화를 확인하고 이를 기반으로 지연을 설정하는 조건에 관심이 있습니다. 예를 들어 새 막대가 열리면 이전 막대가 파란색으로 바뀌고 이전 막대가 빨간색으로 바뀌면 색상이 변경되어 레이아웃을 설정해야 합니다.

 
iCustom()을 사용하여 하나의 표시기를 다른 표시기에 연결하는 방법은 무엇입니까?
8개의 표시기 배열이 모두 채워진 표시기가 하나 있습니다. 1 표시기 배열에서 첫 번째 표시기의 곡선이 그려지도록 두 번째 표시기를 만드는 방법은 무엇입니까?
두 지표 모두 #property indicator_chart_window 입니다.
가장 분명한 설명은 두 가지 관련 지표의 코드 형태의 유사체입니다.

미리 감사드립니다!!!

 //+------------------------------------------------------------------+
//|                                                   __proba_MA.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 LightSeaGreen
//---- buffers
double MovingBuffer[];
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,MovingBuffer);
   return ( 0 );
  }
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   int limit= Bars -counted_bars;
   if (counted_bars> 0 ) limit++;
   for (i= 0 ; i<limit; i++)
      MovingBuffer[i]= iCustom ( NULL , 0 , "moving averages" , 0 , i); 
   return ( 0 );
  }
효과가있다.
 

이것은 작동하지 않습니다.

 //+------------------------------------------------------------------+
//|                                                      ___ORSE.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window       // Индикатор рисуется в основном окне
#property indicator_buffers 8            // Количество буферов
#property indicator_color1 Black       // Цвет линии 0 буфера опорной    МАO
#property indicator_color2 Black       // Цвет линии 1 буфера опорной    МАO сглаженной
#property indicator_color3 Blue         // Цвет линии 2 буфера расчётной  МАR
#property indicator_color4 Blue         // Цвет линии 3 буфера расчётной  МАR  сглаженной
#property indicator_color5 LimeGreen   // Цвет линии 4 буфера скоростной МАS
#property indicator_color6 LimeGreen   // Цвет линии 5 буфера скоростной МАS  сглаженной
#property indicator_color7 Red         // Цвет линии 6 буфера импульсной МАE
#property indicator_color8 Red         // Цвет линии 7 буфера импульсной МАE  сглаженной


 double TF             =   1 ;     // Тайм Фрэйм
//-----------------
 int     Period_O       =   13 ;     // Период опорной O
 int     Aver_Bars_O    =   5 ;     // Колич. баров для сглаживания опорной O

 int     Period_R       =   21 ;     // Период расчётной R
 int     Aver_Bars_R    =   5 ;     // Колич. баров для сглаживания расчётной R

 int     Bars_V_S       =   5 ;     // Колич.баров для расчёта скоростной S
 double K_V_S          = 2.1 ;     // Коэффициент усиления разности значений скоростной S
 int     Aver_Bars_S    =   5 ;     // Колич. баров для сглаживания скоростной S

 int     Bars_V_E       =   5 ;     // Колич.баров для расчёта импульсной E
 double K_V_E          = 2.1 ;     // Коэффициент усиления разности значений импульсной E
 int     Aver_Bars_E    =   5 ;     // Колич. баров для сглаживания импульсной E
//-----------------
int      Ma_method      =   3 ;     // MODE_LWMA       3  Линейно-взвешенное скользящее среднее  
int      Applied_price  =   5 ;     // PRICE_TYPICAL   5  Типичная цена (High+Low+Close)/3

//--------------------------------------------------------------------
                   // Расчитываемые величины
double Line_0[];                       // Инидикаторн. массив опорной    O            Black
double Line_1[];                       // Инидикаторн. массив опорной    O сглаженный Black
double Line_2[];                       // Инидикаторн. массив расчётной  R            Blue
double Line_3[];                       // Инидикаторн. массив расчётной  R сглаженный Blue
double Line_4[];                       // Инидикаторн. массив скоростной S            Green
double Line_5[];                       // Инидикаторн. массив скоростной S сглаженный Green
double Line_6[];                       // Инидикаторн. массив импульсной E            Red
double Line_7[];                       // Инидикаторн. массив импульсной E сглаженный Red

int     Calc_Period_O;                   // Расчитываемый период опорной   O
int     Calc_Period_R;                   // Расчитываемый период расчётной R
double Bars_S;                         // Вычисленное количество баров (период) для измерения скорости  S
double Bars_E;                         // Вычисленное количество баров (период) для измерения импульса Е

//--------------------------------------------------------------------
int init()
   {
     SetIndexBuffer ( 0 ,Line_0);           // Назначение массива буферу опорной    O            Black
     SetIndexBuffer ( 1 ,Line_1);           // Назначение массива буферу опорной    O сглаженный Black 
     SetIndexBuffer ( 2 ,Line_2);           // Назначение массива буферу расчётной  R            Blue
     SetIndexBuffer ( 3 ,Line_3);           // Назначение массива буферу расчётной  R сглаженный Blue
     SetIndexBuffer ( 4 ,Line_4);           // Назначение массива буферу скоростной S            Green
     SetIndexBuffer ( 5 ,Line_5);           // Назначение массива буферу скоростной S сглаженный Green
     SetIndexBuffer ( 6 ,Line_6);           // Назначение массива буферу импульсной E            Red
     SetIndexBuffer ( 7 ,Line_7);           // Назначение массива буферу импульсной E сглаженный Red

    SetIndexStyle ( 0 , DRAW_NONE , STYLE_SOLID , 1 );   // Стиль линии, толщина опорной    O            Black
    SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 2 );   // Стиль линии, толщина опорной    O сглаженный Black
    SetIndexStyle ( 2 , DRAW_NONE , STYLE_SOLID , 1 );   // Стиль линии, толщина расчётной  R            Blue
    SetIndexStyle ( 3 , DRAW_LINE , STYLE_SOLID , 2 );   // Стиль линии, толщина расчётной  R сглаженный Blue
    SetIndexStyle ( 4 , DRAW_NONE , STYLE_SOLID , 1 );   // Стиль линии, толщина скоростной S            Green
    SetIndexStyle ( 5 , DRAW_LINE , STYLE_SOLID , 2 );   // Стиль линии, толщина скоростной S сглаженный Green
    SetIndexStyle ( 6 , DRAW_NONE , STYLE_SOLID , 1 );   // Стиль линии, толщина импульсной E            Red
    SetIndexStyle ( 7 , DRAW_LINE , STYLE_SOLID , 2 );   // Стиль линии, толщина импульсной E сглаженный Red

    Calc_Period_O = TF * Period_O;     // Вычисленный период O
    Calc_Period_R = TF * Period_R;     // Вычисленный период R для S и Е

    Bars_S        = TF * Bars_V_S;     // Вычисленное количество баров (период) для измерения скорости S
    Bars_E        = TF * Bars_V_E;     // Вычисленное количество баров (период) для измерения импульса Е

     return ;
   }
//--------------------------------------------------------------------
int deinit()
   {
     return ( 0 );
   }
//--------------------------------------------------------------------
int start()
   {
     //----------------------------------------------------------------
     int i,n,s,e,Counted_bars;
     double MAO,MAR,MAR_c,MAR_p,MAS,MAS_c,MAS_p,MAE,Sum;
     //----------------------------------------------------------------
    Counted_bars=IndicatorCounted();   // Количество просчитанных баров 
    i= Bars -Counted_bars- 1 ;             // Индекс первого непосчитанного
     //----------------------------------------------------------------
     while (i>= 0 )
        {
         //--------------------------------------------------------------
                             // ОПОРНАЯ
         MAO= iMA ( NULL , 0 , Calc_Period_O, 0 , Ma_method, Applied_price, i);       // Значение опорной МАO
         Line_0[i]=MAO;                                                         // Индик. массив опорной O
         //--------------------------------------------------------------
         if (Aver_Bars_O< 0 )                       // Если неверно задано сглаживание
              Aver_Bars_O= 0 ;                     // .. то не меньше нуля
         Sum= 0 ;                                   // Технический приём
         for (n=i; n<=i+Aver_Bars_O; n++)         // Суммироваение последних значен.
              Sum=Sum + Line_0[n];               // Накопление суммы последн. знач.
         Line_1[i]= Sum/(Aver_Bars_O+ 1 );         // Индик. массив сглаженной линии Black

         //--------------------------------------------------------------
                             // РАСЧЁТНАЯ
         MAR= iMA ( NULL , 0 , Calc_Period_R, 0 , Ma_method, Applied_price, i);       // Значение расчётной МАR
         Line_2[i]=MAR;                                                         // Индик. массив расчётной R
         //--------------------------------------------------------------
         if (Aver_Bars_R< 0 )                       // Если неверно задано сглаживание
              Aver_Bars_R= 0 ;                     // .. то не меньше нуля
         Sum= 0 ;                                   // Технический приём
         for (n=i; n<=i+Aver_Bars_R; n++)         // Суммироваение последних значен.
              Sum=Sum + Line_2[n];               // Накопление суммы последн. знач.
         Line_3[i]= Sum/(Aver_Bars_R+ 1 );         // Индик. массив сглаженной линии Blue

         //--------------------------------------------------------------
                             // СКОРОСТНАЯ
         MAR_c=Line_2[i];
         s=i+Bars_S;
         MAR_p=Line_2[s];
         MAS= MAO+K_V_S*(MAR_c-MAR_p);                                         // Значение скоростной MAS
         Line_4[i]= MAS;                                                       // Индик. массив скоростной S
         //--------------------------------------------------------------
         if (Aver_Bars_S< 0 )                       // Если неверно задано сглаживание
              Aver_Bars_S= 0 ;                     // .. то не меньше нуля
         Sum= 0 ;                                   // Технический приём
         for (n=i; n<=i+Aver_Bars_S; n++)         // Суммироваение последних значен.
              Sum=Sum + Line_4[n];               // Накопление суммы последн. знач.
         Line_5[i]= Sum/(Aver_Bars_S+ 1 );         // Индик. массив сглаженной линии LimeGreen

         //--------------------------------------------------------------
                             // ИМПУЛЬСНАЯ
         MAS_c=Line_5[i];
         e=i+Bars_E;
         MAS_p=Line_5[e];
         MAE= MAO+ 0.001 *K_V_E*(MAS_c-MAS_p)*Volume[i];                         // Значение импульсной MAE
         Line_6[i]= MAE;                                                       // Индик. массив импульсной Е
         //--------------------------------------------------------------
         if (Aver_Bars_E< 0 )                       // Если неверно задано сглаживание
              Aver_Bars_E= 0 ;                     // .. то не меньше нуля
         Sum= 0 ;                                   // Технический приём
         for (n=i; n<=i+Aver_Bars_E; n++)         // Суммироваение последних значен.
              Sum=Sum + Line_6[n];               // Накопление суммы последн. знач.
         Line_7[i]= Sum/(Aver_Bars_E+ 1 );         // Индик. массив сглаженной линии Red
         i--;                                     // Расчёт индекса следующего бара
     }
   return ;
  }
//+------------------------------------------------------------------+
//|                                                 __proba_ORSE.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 LightSeaGreen
//---- buffers
double MovingBuffer[];
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,MovingBuffer);
   return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   int limit=Bars-counted_bars;
   if(counted_bars>0) limit++;
   for(i=0; i<limit; i++)
      MovingBuffer[i]=iCustom(NULL,0,"___ORSE", 0, i); 
   return(0);
  }

터미널이 멈춥니다. 왜, 이해가 안 돼요.

 
ZahvatkiN :

표시기는 최신 유행이며 매번 색상이 변경되지 않습니다. 막대의 색상 변화를 확인하고 이를 기반으로 지연을 설정하는 조건에 관심이 있습니다.

컴퓨터는 색상을 구분하지 않고 숫자 0과 1만 구분합니다. 따라서 인디케이터에 색상이 변하는 이유를 조건에 넣어야 합니다. 예를 들어, 가격 방향의 변화와 이 변화가 얼마나 중요한지!
 
얘들아, 하루가 시작된 이후로 시간(초)이 얼마나 지났는지 확인하는 기능이 있는 사람이 있습니까?
 
TimeCurrent() % 86400
 
MikeM :
TimeCurrent() % 86400

????