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

 
artmedia70 :

다시 한 번, 스튜디오에 지표 코드 섹션을 모두 밀어넣고 싶은 부분을 지정합니다. 하지만... 버퍼를 늘릴 필요는 없습니다. 값을 입력할 버퍼 셀로 포인터를 이동해야 합니다.

 int k=Vnf2;
   for (i=Vnf2;i>0;i--)
    {
     ArrayResize(Buf_DN,Vnf2+1);
     Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);
     k--;
    }
그 후 터미널이 멈 춥니 다.
 
demlin :
그 후 터미널이 멈 춥니 다.

게으른, 전체 코드를 함께 표시
 EquationDirect
 
sergeev :

게으른, 전체 코드를 함께 표시
 #property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2        // Количество буферов
#property indicator_color1 Green     // Цвет первой линии
#property indicator_color2 Red       // Цвет второй линии

double Buf_UP[],Buf_DN[];             // Объявление массивов (под буферы индикатора)

extern int History= 21 ;         // Колич.баров в расчётной истории
extern int M= 3 ;           // начальный бар с которого начинаем поиск фракталов в цикле.
int     i,k;                 // номера баров в циклах.
int     Vnf3,Vnf2,Vnf1;     // номера реперных фракталов (1-ый справа на графике на нисходящем тренде).
int     VnfL3,VnfL2,VnfL1;   // номера реперных фракталов (1-ый справа на графике на восходящем тренде).
int     VFN,VFNL;           // счетчик найденных фракталов.
int     Md,MdL;             // счетчики кол-ва модификаций

double VMF1,VMF2;     // промежуточные значения верхних фракталов на нисходящем тренде.
double VMFL1,VMFL2;   // промежуточные значения нижних фракталов на восходящем тренде.
double VlFl_L;             // Min значение ближайшего нижнего фрактала на тренде вниз
double VlFl_H;             // Max значение ближайшего верхнего фрактала на тренде вверх
datetime tim1_L;           // Время ближайшего нижнего фрактала после нисходящего тренда 
datetime timL1_H;           // Время ближайшего верхнего фрактала после восходящего тренда 

datetime tim1,tim2,tim3;   // время для построения линий вилки Чувашова.
datetime timL1,timL2,timL3; // время для построения линий вилки Чувашова.

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer ( 0 ,Buf_UP);         // Назначение массива буферу
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); // Стиль линии
   SetIndexBuffer ( 1 ,Buf_DN);         // Назначение массива буферу
   SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 1 ); // Стиль линии
   return ;                           // Выход из спец. ф-ии init()

  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int     counted_bars= IndicatorCounted ();
//----
   for (i= 2 ;i<=History;i++)
    { //цикл
     if (High[i]>High[i+ 1 ] &&High[i]>High[i- 1 ]&&High[i]>Close[i- 2 ])
     { //фрактал
      VFN++;           // счетчик найденного фрактала.
       // ------------------------------------------------------------+
       if (VFN== 1 )       // если 1-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
        { // f1
           Vnf1=i;         // запоминаем номер Max бара найденного фрактала.
           VMF1=High[i];   // запоминаем Max значение 1-ого найденного фрактала.
           tim1= iTime ( NULL , 0 ,i);         // запоминаем время 1-ой опорной точки.
         } //-f1
     // --------------------------------------------------------------+
     if (VFN== 2 )         // если 2-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
      { // f2
          VMF2=High[i];     // запоминаем Max значение 2-ого найденного фрактала.
           if (VMF2>VMF1)     // если Max значение 2-го фрактала больше 1-го (т.е. направлена вниз),
            {
              Vnf2=i;       // запоминаем номер Max бара найденного фрактала.
              tim2= iTime ( NULL , 0 ,i);       // запомним время 2-ой опорной точки.
            }
             else VFN=VFN- 1 ;
       } //-f2
     // --------------------------------------------------------------+
     //int k=0;
     Comment ( "2 значение " ,EquationDirect(Vnf2, VMF2, Vnf1,VMF1, 0 ));
   // Comment("Его значение= ",VMF1);
   //int k=Vnf2;
   //for (i=Vnf2;i>0;i--)
   // {
   //  ArrayResize(Buf_DN,Vnf2+1);
   //  Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);
   //  k--;
   // }
    

// ------------------------------------------------------------------+
   if (VFN== 2 ) break ; // найдены все 2 фрактала, выходим из цикла.
// ------------------------------------------------------------------+ 
    } //-фрактал                      
   } //-цикл 
//----

for (i= 2 ;i<=History;i++)
    { //цикл
     if (Low[i]<Low[i+ 1 ] &&Low[i]<Low[i- 1 ]&&Low[i]<Close[i- 2 ])
     { //фрактал
      VFNL++;           // счетчик найденного фрактала.
       // ------------------------------------------------------------+
       if (VFNL== 1 )       // если 1-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
        { // f1
           VnfL1=i;         // запоминаем номер Max бара найденного фрактала.
           VMFL1=Low[i];   // запоминаем Max значение 1-ого найденного фрактала.
           
           timL1= iTime ( NULL , 0 ,i);         // запоминаем время 1-ой опорной точки.
         } //-f1
     // --------------------------------------------------------------+
     if (VFNL== 2 )         // если 2-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
      { // f2
          VMFL2=Low[i];     // запоминаем Max значение 2-ого найденного фрактала.
           if (VMFL2<VMFL1)     // если Max значение 2-го фрактала больше 1-го (т.е. направлена вниз),
            {
              VnfL2=i;       // запоминаем номер Max бара найденного фрактала.
              timL2= iTime ( NULL , 0 ,i);       // запомним время 2-ой опорной точки.
            }
             else VFNL=VFNL- 1 ;
       } //-f2
     // --------------------------------------------------------------+

// ------------------------------------------------------------------+
   if (VFN== 2 ) break ; // найдены все 2 фрактала, выходим из цикла.
// ------------------------------------------------------------------+ 
    } //-фрактал                      
   } //-цикл 


DelLine();DelLineH();CreateLine();CreateLineH();
   return ( 0 );
  }
//+------------------------------------------------------------------+

void DelLine()         // Удаление трендовых линий Sell и значков для вилки Чувашова 
   {
   ObjectDelete ( "Tr_down1" );
   // ObjectDelete("Tr_down2");
   // ObjectDelete("Frak_1");
   //ObjectDelete("Frak_2");
   //ObjectDelete("Frak_3");
   }

void DelLineH()         // Удаление трендовых линий BUY и значков для вилки Чувашова 
   {
   ObjectDelete ( "Tr_up1" );
   //ObjectDelete("Tr_up2");
   //ObjectDelete("Fr_1");
   //ObjectDelete("Fr_2");
   //ObjectDelete("Fr_3");
   }
void CreateLine()       // Создание и отрисовка трендовых линий Sell линий вилки Чувашова 
   {
   ObjectCreate ( "Tr_down1" , OBJ_TREND , 0 ,tim2,VMF2,tim1,VMF1);
   ObjectSet ( "Tr_down1" , OBJPROP_COLOR , Red );
   ObjectSet ( "Tr_down1" , OBJPROP_WIDTH , 1 );   // тонкой линией и 
   ObjectSet ( "Tr_down1" , OBJPROP_STYLE , STYLE_SOLID ); // пунктиром
   //ObjectCreate("Tr_down2",OBJ_TREND,0,tim2,VMF2,tim1,VMF1);
   //ObjectSet("Tr_down2",OBJPROP_COLOR,Aqua);
   // ObjectSet("Tr_down2",OBJPROP_WIDTH,1);  // тонкой линией и 
   // ObjectSet("Tr_down2",OBJPROP_STYLE,STYLE_DOT);// пунктиром 
   }
  
   void CreateLineH()       // Создание и отрисовка трендовых линий BUY линий вилки Чувашова 
   {
   ObjectCreate ( "Tr_up1" , OBJ_TREND , 0 ,timL2,VMFL2,timL1,VMFL1);
   ObjectSet ( "Tr_up1" , OBJPROP_COLOR , Green );
   ObjectSet ( "Tr_up1" , OBJPROP_WIDTH , 1 );   // тонкой линией и 
   ObjectSet ( "Tr_up1" , OBJPROP_STYLE , STYLE_SOLID ); // пунктиром
   //ObjectCreate("Tr_up2",OBJ_TREND,0,timL2,VMFL2,timL1,VMFL1);
   //ObjectSet("Tr_up2",OBJPROP_COLOR,Aqua);
   //ObjectSet("Tr_up2",OBJPROP_WIDTH,1);  // тонкой линией и 
   // ObjectSet("Tr_up2",OBJPROP_STYLE,STYLE_DOT);// пунктиром 
   }
   
   double EquationDirect( double x1, double y1, double x2, double y2, double x) //прямая линия
   {
if (x2==x1) return (y1);
return ((y2-y1)/(x2-x1)*(x-x1)+y1);}
 
sergeev :

게으른, 전체 코드를 함께 표시
나는 이미 모든 것을 스스로 이해했습니다. 나는 사이클을 잘못된 위치에 놓았고, 바로 지금 보았습니다. 모두에게 불편을 드려 죄송합니다
 

그건 그렇고, 이것은 사이클 내부에 있어서도 안됩니다.

 ArrayResize(Buf_DN,Vnf2+1);
 
sergeev :

그건 그렇고, 이것은 사이클 내부에 있어서도 안됩니다.

메모 감사합니다 내려놓겠습니다
 

주문의 "수명"을 그래픽으로 표시



화신
하나
벨퍼슨 03.08.2011 22:44
안녕하세요. 실제로 질문은: 고문이 정지로 마감된 주문을 엽니다. MT4에 내장된 전략 테스터에서와 같이 위치의 "수명"을 표시하도록 설정할 수 있습니까? 화살표로 닫고(?) 연결이 닫힐 때 점선은? 모든 답변에 미리 감사드립니다
 

시간별 주문 열기



화신
하나
Mega4alik 03.08.2011 23:45

어드바이저가 특정 순간에 거래를 열도록 하는 방법은 무엇입니까?

1초마다 처리되는 함수가 있나요?

 
안녕하세요,

특정 크기의 차트(상단에서 열림, 하단에서 닫힘 및 그 반대)와 같은 양초를 찾는 지표를 찾고 있습니다. 기지에서 모든 것을 찾지 못했습니다. 이거 본 사람 있으면 알려주세요. 미리 감사드립니다.


 

안녕하세요.

Expert Advisor에 ExTrendv2 지표(첨부)의 Up_Line 및 Down_Line 값을 추출하는 데 도움이 됩니다.

나는 다음과 같이 시도합니다.

Up_Line iCustom의 경우(NULL, 0, "ExTrendv2", 0, 0,1)

Down_Line iCustom의 경우(NULL, 0, "ExTrendv2", 0, 1,1)

작동하지 않습니다.

파일:
extrendv2.mq4  8 kb