"MQL5’i kullanarak çizgilerle nasıl çalışılır?" makalesi için tartışma

 

Yeni makaleye göz atın: MQL5’i kullanarak çizgilerle nasıl çalışılır?.

Bu makalede, MQL5’i kullanarak trend, destek ve direnç gibi en önemli çizgilerle nasıl çalışılacağından bahsedeceğiz.

Trend çizgisini, emirlerimizi trend çizgisi türüne göre vererek alım-satımda kullanabiliriz. Bir yükseliş trendi çizgisi oluşmuşsa, fiyatın aşağı inerek bu trend çizgisini yukarıdan test etmesini ve ardından yukarı sıçramasını bekleyebiliriz - bu durumda bu trend çizgisine alış emri yerleştirebiliriz. Tersi şekilde, grafikte düşen bir trend çizgisi görürsek, fiyatın bu trend çizgisini aşağıdan test etmek için yukarı çıkacağını ve ardından aşağı sıçrayacağını varsayabiliriz. Böyle bir durumda, düşüş trendi çizgisine satış emri yerleştirebiliriz.

Yükseliş trendi çizgisi aşağıda gösterilmektedir:

Yükseliş trendi çizgisi

Yazar: Mohamed Abdelmaaboud

 
ama neden ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ?
enough ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
 

Bu yeni başlayanlar için ilginç bir makale, ancak Uzman Danışmanların doğru çalışması için kodlarda küçük bir değişiklik yapılması gerekiyor.

Saygılarımla, Vladimir.

//+------------------------------------------------------------------+
//|UpwardTrendline Sistemi.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pLow[];
   ArraySetAsSeries(pLow,true);
   int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow);
   if(copy_low>0)
     {
      int candleLow = ArrayMinimum(pLow,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"UpwardTrendline");
      ObjectCreate(0,"UpwardTrendline",OBJ_TREND,0,pArray[candleLow].time,pArray[candleLow].low,
                   pArray[0].time,pArray[0].low);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_COLOR,Blue);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_RAY_RIGHT,true);
     }
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|DownwardTrendline Sistemi.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pHigh[];
   ArraySetAsSeries(pHigh,true);
   int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh);
   if(copy_high>0)
     {
      int candleHigh = ArrayMaximum(pHigh,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"DnwardTrendline");
      ObjectCreate(0,"DnwardTrendline",OBJ_TREND,0,pArray[candleHigh].time,pArray[candleHigh].high,
                   pArray[0].time,pArray[0].high);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_COLOR,Blue);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true);
     }
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|Destek Hattı Sistemi.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pLow[];
   ArraySetAsSeries(pLow,true);
   int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow);
   if(copy_low>0)
     {
      int candleLow = ArrayMinimum(pLow,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"supportLine");
      ObjectCreate(0,"supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low,
                   pArray[0].time,pArray[0].low);
      ObjectSetInteger(0,"supportLine",OBJPROP_COLOR,Green);
      ObjectSetInteger(0,"supportLine",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"supportLine",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"supportLine",OBJPROP_RAY,true);
     }
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|Direnç Hattı Sistemi.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pHigh[];
   ArraySetAsSeries(pHigh,true);
   int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh);
   if(copy_high>0)
     {
      int candleHigh = ArrayMaximum(pHigh,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"resistanceLine");
      ObjectCreate(0,"resistanceLine",OBJ_HLINE,0,pArray[candleHigh].time,pArray[candleHigh].high,
                   pArray[0].time,pArray[0].high);
      ObjectSetInteger(0,"resistanceLine",OBJPROP_COLOR,Red);
      ObjectSetInteger(0,"resistanceLine",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"resistanceLine",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true);
     }
  }
//+------------------------------------------------------------------+
 
MrBrooklin #:

Yeni başlayanlar için ilginç bir makale, ancak EA'ların doğru çalışması için kodlarda biraz ince ayar yapılması gerekiyor.

Saygılarımla, Vladimir.




Nazik yorumunuz için teşekkürler, inceleyeceğim.
 
Çizgiyi çizme şekliniz çok güzel. Trend çizgileri hakkında bir gözlem: İkinci bağlantı noktasının her zaman 0 endeks çubuğu olması pek bir işe yaramaz, çünkü her yeni çubukta trend çizgisi güncellenecek ve bu nedenle trend çizgisi hiçbir işe yaramayacaktır. İdeal olan, ikinci bağlantı noktasını belirli bir kritere göre tanımlamaktır. Örneğin, en yüksek fiyata sahip ikinci çubuk, ilkinden minimum 30 çubuk mesafe ile veya ertesi gün en yüksek fiyata sahip çubuğu alın vb.

Makale için tebrikler.
 
Andrei Pereira Trend çizgileri hakkında bir gözlem: İkinci bağlantı noktasının her zaman 0 endeks çubuğu olması pek bir işe yaramaz, çünkü her yeni çubukta trend çizgisi güncellenecek ve bu nedenle trend çizgisi hiçbir işe yaramayacaktır. İdeal olan, ikinci bağlantı noktasını belirli bir kritere göre tanımlamaktır. Örneğin, en yüksek fiyata sahip ikinci çubuk, ilkinden en az 30 çubuk uzakta veya ertesi gün en yüksek fiyata sahip çubuğu alın vb.

Makale için tebrikler.

Yorumunuz için teşekkürler, iyi bir gözlem.

 
Mohamed Abdelmaaboud #:
Nazik yorumunuz için teşekkürler, revize edeceğim.

Neredeyse 10 ay oldu ve makalenin yazarı tarafından kodlarında hiçbir değişiklik yapılmadı. ))

Saygılarımla, Vladimir.

 
MrBrooklin #:

Neredeyse 10 ay geçti ve makalenin yazarı kodlarında herhangi bir değişiklik yapmadı. ))

Saygılarımla, Vladimir.

Hatırlatmanız ve katkınız için teşekkür ederiz. Düzenleme için gönderilecektir.