MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 198

 
-Aleks- :

En son gönderdiğiniz koda baktığınızdan emin misiniz? Eğer öyleyse, dinlenmeye ihtiyacım var... teşekkürler.
" c " değişkenini takip edin.
 
Artyom Trishkin :
" c " değişkenini takip edin.

Evet teşekkür ederim! Görüyorum - ama bu kodu sonuna kadar anlayamıyorum - deneyeceğim!

Victor Nikolaev - yardımın için teşekkürler!

 

Hepinize iyi günler!

Lütfen bana, daha önce kapanmış ve kapanmış emirler listesinde görünen bir emir için SİHİRLİ NUMARA değerini değiştirmenin mümkün olup olmadığını söyleyin.

Yani siparişi kapattıktan sonra SİHİRLİ NUMARA değerini değiştirin.

Mümkünse - o zaman hangi işlevin yardımıyla. Kim, böyle bir işlev bulamadım.

Teşekkür ederim.
 
ANDREY :

Hepinize iyi günler!

Lütfen bana, daha önce kapanmış ve kapanmış emirler listesinde görünen bir emir için SİHİRLİ NUMARA değerini değiştirmenin mümkün olup olmadığını söyleyin.

Yani siparişi kapattıktan sonra SİHİRLİ NUMARA değerini değiştirin.

Mümkünse - o zaman hangi işlevin yardımıyla. Kim, böyle bir işlev bulamadım.

Teşekkür ederim.

Yasaktır. Ve neden buna ihtiyacınız var - belki soruna başka bir çözüm var mı?
 
-Aleks- :

Yasaktır. Ve neden buna ihtiyacınız var - belki soruna başka bir çözüm var mı?

Bahşiş için teşekkürler.

Cevap beklerken aklıma bir şey geldi. Eğer işe yaramazsa, ihtiyacım olanı yazarım.

Lütfen bana söyle

if ( OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // SON sipariş ise
if ( OrderType ()==OP_SEL) // SAT

X = OrderProfit( ); // kar al değerini hatırla

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // SON sipariş ise
if ( OrderType ()==OP_SEL) // SAT

if(X < 0) // ve bu sat stop ile kapatılmışsa

BAŞKA BİR SİPARİŞ AÇ

SORU

Bu koşullara ek olarak nasıl kodlanır.

Sadece son değil, son ve son sipariş öncesi siparişlerin de stop ile kapatılması gerekir.

ve ancak o zaman

BAŞKA BİR SİPARİŞ AÇ

Teşekkür ederim.

 
geratdc : Not Defteri'ndeyken kodda önerilen değişiklikleri yaptım. Lütfen kodu doğru düzeltip düzeltmediğimi kontrol edin?

Baktı. Düzeltildi. 3 ay boyunca test cihazında böyle bir sonuç

Düşüş büyük

 
Lütfen bana o gün için diyelim ki son 5 kavşak miktarında Mashek kavşağının çubuklarının sayılarını nasıl bulacağımı söyleyin.
 
missha32 : mevcut gün için son 5 geçiş sayısında Mashek geçiş çubuklarının sayısını bulun

Sabah saat 4'te ise - bugün için hala birkaç bar var. H4'te günde sadece 6 bar var. aranacak çubuk sayısını veya kavşak sayısını ayarlamanız gerekir.

//+-------------------------------------------------------+
//| Подсчет пересечений MA                    PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict

extern int Баров = 500;  // Баров для подсчета пересечений МА
extern int MA_1  =10;
extern int MA_2  =100;

void OnStart()
{
  int Бар, Счетчик;
  double MA_1_Предыдущая, MA_2_Предыдущая,
         MA_1_Следующая,  MA_2_Следующая;

  ObjectsDeleteAll(); // Удалить вертикальные линии

  for(Счетчик=0, Бар=0; Бар<Баров; Бар++) // Начинаем с послнего бара
  {
    MA_1_Предыдущая = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар+1);
    MA_1_Следующая  = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар);
    MA_2_Предыдущая = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар+1);
    MA_2_Следующая  = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар);

    if((MA_1_Предыдущая>=MA_2_Предыдущая && MA_1_Следующая<=MA_2_Следующая) ||
       (MA_1_Предыдущая<=MA_2_Предыдущая && MA_1_Следующая>=MA_2_Следующая))
    {
      Счетчик++;
      Alert(Счетчик, "  Бар = ", Бар, "  T = ",Time[Бар]);

      // Создать вертикальную линию
      ObjectCreate( (string)Счетчик+"_"+(string)Бар,OBJ_VLINE,0,Time[Бар],0);

      if(Счетчик == 5) break;  // 5 линий есть - выход
    }
  }
}

Uzun mesafeler = eğilim

 

Lütfen bana söyle

if ( OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // SON sipariş ise
if ( OrderType ()==OP_SEL) // SAT

X = OrderProfit( ); // kar al değerini hatırla

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // SON sipariş ise
if ( OrderType ()==OP_SEL) // SAT

if(X < 0) // ve bu sat stop ile kapatılmışsa

BAŞKA BİR SİPARİŞ AÇ

SORU

Bu koşullara ek olarak nasıl kodlanır.

Sadece son değil, son ve son sipariş öncesi siparişlerin de stop ile kapatılması gerekir.

ve ancak o zaman

BAŞKA BİR SİPARİŞ AÇ

Teşekkür ederim.
 

Lütfen yeniden işlenebilecek herhangi bir göstergeyi önerin, saatlik grafikte her gün yüksekten düşüğe bir çizgi ile ilgileniyorum ve çizginin uzunluğu ve eğim açısı hakkında veri alma yeteneği ve çalışmak mümkündü. Koddaki bu verilerle, sıfırdan kendim yazarsam mql4'ün büyük bir uzmanı değilim, büyük sorun mu? bana yardım et lütfen

işte bir hindi, çizgi iki koordinat boyunca uzanıyor, saçmalığı nasıl bükmediğim önemli değil, lütfen yardım edin, belki boşuna bu hindi ile iletişime geçtim

#property indicator_chart_window
//---- input parameters
extern int   CountDays     =22;
extern int   GMT           =0;
extern color pivot         =Gold;
extern color day           =Yellow;
extern color metka         =MidnightBlue;

//---- indicator buffers
double range[];
double ny_close[];
double low[];
double high[];
datetime time1;
datetime time2;
datetime ny_time[];

int shift, num;
int ny_shift[];
datetime prevDay=0;
bool fTime;
// ----
void ObjDel()
{
   if (ObjectsTotal() > 0)
   for (num=0;num<=CountDays;num++)
   {
   ObjectDelete("PPw["+num+"]");   
          
   }
   ObjectDelete("mPw");           
}
// ----
void PlotLine(string name,double value,double value1,double line_color,double style)
{
   double valueN=NormalizeDouble(value,Digits);
   double valueN1=NormalizeDouble(value1,Digits);
   bool res = ObjectCreate(name,OBJ_TREND,0,time1,valueN,time2,valueN1);
   ObjectSet(name, OBJPROP_WIDTH, 1);
   ObjectSet(name, OBJPROP_STYLE, style);
   ObjectSet(name, OBJPROP_RAY, false);
   ObjectSet(name, OBJPROP_BACK, true);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
//***********
void PlotVLine(string name,double tm,double line_color)
{
   bool res = ObjectCreate(name,OBJ_VLINE,0,tm,0);
   ObjectSet(name, OBJPROP_WIDTH, 0);
   ObjectSet(name, OBJPROP_STYLE, 2);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
//***********
void PlotPrice(string name, double value, double line_color)
{
    double valueN=NormalizeDouble(value,Digits);
    bool res = ObjectCreate(name, OBJ_ARROW, 0, time2,valueN);
    ObjectSet(name, OBJPROP_COLOR, line_color);
    ObjectSet(name, OBJPROP_WIDTH, 1);
    ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}       
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   fTime = true;
   IndicatorBuffers(2);
   SetIndexBuffer(0,range);
   SetIndexBuffer(1,ny_close);
   return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+   
int deinit()
{
   ObjDel();
   Comment("");
   return(0);
}
//+------------------------------------------------------------------+
//| LNX_Pivots_v3.1                                                    |
//+------------------------------------------------------------------+
int start()
{
   int i;
   double P;
  
   datetime cDay = iTime(NULL,PERIOD_D1,0) + (GMT-Period()/60.0)*3600;
   if (cDay != prevDay || fTime)  
   {
   ObjDel();
   ArrayResize(ny_time,CountDays+1);
   ArrayResize(ny_shift,CountDays+1);
   ArrayResize(high,CountDays+1);
   ArrayResize(low,CountDays+1); 
   ArrayResize(range,CountDays+1);    
      for (shift=0;shift<=CountDays;shift++)
      {
      ny_time[shift]  = iTime(NULL,PERIOD_D1,shift) + (GMT-Period()/60.0)*3600;
      ny_shift[shift] = iBarShift(NULL,0,ny_time[shift]);
      ny_close[shift] = iClose(NULL,0,ny_shift[shift]);        
      }
     
 for (shift=0;shift<=CountDays-1;shift++)
      {
      int length = ny_shift[shift+1]-ny_shift[shift];
   
      high[shift] = High[iHighest(NULL,0,MODE_HIGH,length,ny_shift[shift])];
      low[shift]  = Low[iLowest(NULL,0,MODE_LOW,length,ny_shift[shift])];
      range[shift] = high[shift] - low[shift]; 
      }
  
  for (shift=0;shift<=CountDays-1;shift++)
      {
  
           
      P  = (ny_close[shift]+high[shift]+low[shift])/3;
      

      time1 = ny_time[shift]+Period()*60;    
         
         if (shift==0) 
         {
         time2 = ny_time[shift] + 24*3600+Period()*60 ;
         PlotVLine("pV0",time2,day);
         PlotPrice("mPw",P,metka);
                 
         }
         else
         time2 = ny_time[shift-1]+Period()*60;
         PlotVLine("pV["+shift+"]",time1,day);
            
      int pstyle=0;
   PlotLine("PPw["+shift+"]",P,P,pivot,pstyle); // *********две координаты*******

}
   fTime = false;
   prevDay = cDay;
   }           
   return(0);
}
//+------------------------------------------------------------------+
Neden: