[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 44

 
artmedia70 :

Bir kez daha, stüdyoya, hepsini itmek istediğiniz gösterge kodunun bir bölümünü verin. Ama... kesinlikle arabelleği artırmanız gerekmez - işaretçiyi, değerin girileceği arabellek hücresine kaydırmanız gerekir.

 int k=Vnf2;
   for (i=Vnf2;i>0;i--)
    {
     ArrayResize(Buf_DN,Vnf2+1);
     Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);
     k--;
    }
Bundan sonra terminal donuyor
 
demlin :
Bundan sonra terminal donuyor

tembel, tüm kodu birlikte göster
 EquationDirect
 
sergeev :

tembel, tüm kodu birlikte göster
 #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 :

tembel, tüm kodu birlikte göster
Zaten her şeyi kendim anladım - döngüyü yanlış yere koydum, şimdi gördüm. herkesi rahatsız ettiğim için özür dilerim
 

Ve bu arada, bu da döngünün içinde olmamalıdır.

 ArrayResize(Buf_DN,Vnf2+1);
 
sergeev :

Ve bu arada, bu da döngünün içinde olmamalıdır.

Not için teşekkürler, kaldıracağım
 

Siparişlerin "ömrünün" grafiksel gösterimi



avatar
1
Belperson 03.08.2011 22:44
Merhaba. Aslında soru şudur: danışman stop tarafından kapatılan emirleri açar. MT4'ü, yerleşik strateji test cihazında olduğu gibi pozisyonların "ömrünü" gösterecek şekilde ayarlamak mümkün müdür, yani: açılış noktaları (burada her şey açıktır) ve oklarla kapatılıyor (?) ve bağlantı kapatıldığında noktalı çizgileri var mı? Tüm cevaplar için şimdiden teşekkürler
 

Zamana göre sipariş açma



avatar
1
Mega4alik 03.08.2011 23:45

Danışmanın belirli bir saniyede bir anlaşma açmasını nasıl sağlayabilirim?

Her saniye işlenen bir fonksiyon var mı?

 
Tünaydın,

Grafikte olduğu gibi (üstte açık, altta kapalı ve tam tersi) belirli bir boyutta mumları arayacak bir gösterge arıyorum. Üs'te her şeyi bulamadım. Bunu gören varsa lütfen bana bildirin. Şimdiden teşekkürler.


 

Tünaydın.

ExTrendv2 göstergesinin (ekli) Up_Line ve Down_Line değerlerinin Expert Advisor'a çıkarılmasına yardımcı olun.

şöyle denerim:

Up_Line iCustom için(NULL, 0, "ExTrendv2", 0, 0,1)

Down_Line iCustom için(NULL, 0, "ExTrendv2", 0, 1,1)

çalışmıyor.

Dosyalar:
extrendv2.mq4  8 kb