#property description "Bu Uzman Danışman, ChartScreenShot() fonksiyonu kullanılarak, mevcut çizelgenin ekran görüntüsü"
#property description "serilerinin nasıl oluşturulabileceğini göstermektedir. Uygunluk için dosya ismi çizelgede gösterilir."
#property description "Görüntülerin genişlik ve yükseklikleri makrolarla belirlenir"
#define WIDTH 800 // ChartScreenShot() çağrısı için görüntü genişliği
#define HEIGHT 600 // ChartScreenShot() çağrısı için görüntü yüksekliği
//--- giriş parametreleri
input int pictures=5; // Serilerdeki resim sayısı
int mode=-1; // -1 çizelgenin sağ sınırına , 1 - ise sola kaydırmayı belirtir
int bars_shift=300;// ChartNavigate()kullanarak çizelgenin kaydırılması için çubuk sayısı
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
void OnInit()
{
//--- Otomatik kaydırılmayı devre dışı bırak
ChartSetInteger(0,CHART_AUTOSCROLL,false);
//--- Çizelgenin sağ kıyısının kaydırılmasını ayarla
ChartSetInteger(0,CHART_SHIFT,true);
//--- Mum çizelgesini göster
ChartSetInteger(0,CHART_MODE,CHART_CANDLES);
//---
Print("Uzman Danışmanın hazırlanması tamamlandı");
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//--- Fonksiyonun ismini, çağrı zamanını ve olay işleyiciyi göster
Print(__FUNCTION__,TimeCurrent()," id=",id," mode=",mode);
//--- CHARTEVENT_CLICK olayının işleyicisi ("Çizelge üstünde fare tıklaması")
if(id==CHARTEVENT_CLICK)
{
//--- Çizelge kıyısından başlangıç kaydırması
int pos=0;
//--- Sol çizelge kenarının işlemi
if(mode>0)
{
//--- Çizelgeyi sol yana kaydır
ChartNavigate(0,CHART_BEGIN,pos);
for(int i=0;i<pictures;i++)
{
//--- Dosya ismi olarak ve çizelgede göstermek için bir metin ayarla
string name="ChartScreenShot"+"CHART_BEGIN"+string(pos)+".gif";
//--- İsmi, çizelge üzerinde yorum olarak göster
Comment(name);
//--- Çizelge görüntüsünü terminal_dizini\MQL5\Files\ konumuna kaydet
if(ChartScreenShot(0,name,WIDTH,HEIGHT,ALIGN_LEFT))
Print("Ekran görüntüsünü kaydettik ",name);
//---
pos+=bars_shift;
//--- Kullanıcıya çizelgenin yeni kısmına bakması için zaman tanı
Sleep(3000);
//--- Çizelgeyi mevcut konumdan bars_shift çubuk sağa kaydır
ChartNavigate(0,CHART_CURRENT_POS,bars_shift);
}
//--- Modu tersine çevir
mode*=-1;
}
else // Çizelgenin sağ kıyısının işlemi
{
//--- Çizelgeyi sağ tarafa kaydır
ChartNavigate(0,CHART_END,pos);
for(int i=0;i<pictures;i++)
{
//--- Dosya ismi olarak ve çizelgede göstermek için bir metin ayarla
string name="ChartScreenShot"+"CHART_END"+string(pos)+".gif";
//--- İsmi, çizelge üzerinde yorum olarak göster
Comment(name);
//--- Çizelge görüntüsünü terminal_dizini\MQL5\Files\ konumuna kaydet
if(ChartScreenShot(0,name,WIDTH,HEIGHT,ALIGN_RIGHT))
Print("Ekran görüntüsünü kaydettik ",name);
//---
pos+=bars_shift;
//--- Kullanıcıya çizelgenin yeni kısmına bakması için zaman tanı
Sleep(3000);
//--- Çizelgeyi mevcut konumdan bars_shift çubuk sağa kaydır
ChartNavigate(0,CHART_CURRENT_POS,-bars_shift);
}
//--- Modu tersine çevir
mode*=-1;
}
} // CHARTEVENT_CLICK olay işlemesinin sonu
//--- OnChartEvent() olay işleyicisinin sonu
}
|