Možná se vám již stalo, že jste potřebovali "sejmout" obrázek grafu, tzv. vytvořit screenshot, a poslat jej třeba zde na fórum. Jednoduchý proces stisknutím klávesy PrtScr, ale zdlouhavější otevíráním grafického editoru, oříznout graf o nedůležité informace a uložit.
MQL4 jazyk nabízí funkci, která "vyfotí" váš graf a uloží do souboru a proč si na to tedy neudělat skript? Určitě se nevyhnete úpravám v grafickém editoru, pokud potřebujete do obrázku ještě zapsat některé informace a nevystačíte si s nástroji, které nabízí MetaTrader, ale jako malá pomůcka, která nezabere moc práce, to stojí za to.
Postup
V platformě MetaTrader si otevřte Editor jazyka MetaQuotes (s menu nabídky Nástroje, nebo klávesou F4 či z nástrojové lišty kliknutím na ikonu .
V editoru vytvořte nový soubour z nabídky File -> New. Otevře se vám průvodce, ve kterém vyberte položku Script a klikněte na tlačítko Další (případně Next). V dalším kroku si pojmenujte váš skript v textovém poli Name. Pojmenujte si jej třeba ScreenShot. Klikněte na tlačítko Dokončit (případně Finish).
Průvodce vám vygeneroval základ skriptu, ve kterém je jedna funkce a dodatečné parametry. Pokud jste se ještě nesetkali s kódem v MQL4, můžu vás odkázat na tento článek, kde se dozvíte více o skriptování.
Nyní stačí nahradit v editoru následující kód:
#property show_inputs
extern int ImageWidth = 1200;
extern int ImageHeight = 800;
extern int Scale = 2;
extern int ChartType = 1;
int start()
{
string fn = StringConcatenate(Symbol(), "_", Period(), "_",
Year(), Month(), Day(), "_", Hour(), Minute(), Seconds(), ".gif");
if(WindowScreenShot(fn, ImageWidth, ImageHeight, 0, Scale, ChartType))
{
Alert("Byl vytvořen obrázek ", fn, " a uložen do složky ../experts/files");
}
else
{
Alert("Nepodařilo se vytvořit obrázek, číslo chyby: ", GetLastError());
}
return(0);
}
Po vložení kódu již stačí zkompilovat náš skript kliknutím na ikonu z nástrojové lišty, zkontrolovat, zda je vše bez chyby a vyzkoušet skript v MetaTraderu.
V seznamu skriptů si najděte váš skript, dvojklikem nebo přetažením do grafu se vytvoří obrázek a uloží do adresáře vaší platformy do složky experts\files.
Pokud by se někomu nedařilo si skript správně vytvořit, nabízím tento skript ke stažení.
Skript je velice jednoduchý a lze pouze snad zmínit, že parametr #property show_inputs, si vyžádá vstupní data od uživatele a to zobrazením dialogu při každém spuštění skriptu. Vstupní data jsou proměnné v kódu označené klíčovým slovem extern, které mají přednastavené defaultní hodnoty. Pokud by vás tento dialog již unavoval a pro vlastní potřebu nepotřebujete určovat nastavení, jednoduše řádek s parametrem #property show_inputs smažte nebo jej zakomentujte vložením znaků // na začátek řádku před parametr. Defaultní hodnoty pochopitelně můžete změnit.
Defaultní hodnota pro Scale může být v rozsahu 0 až 5. Je to horizontální roztažení stupnice grafu, stejně jako když myškou měnít tuto stupnici tažením na časové ose grafu.
Defaultní hodnota pro ChartType může být v rozsahu 0 až 2. Jedná se o typ grafu, kde 0 = sloupcový graf, 1 = svíčkový graf a 2 = čárový graf.
Defaultní hodnota pro ImageWidth a ImageHeight může být v rozsahu 1 až co vám zvládne počítač (popravdě řečeno nevím). Nicméně se jedná o šířku a výšku obrázku v pixelech, takže např. hodnoty [šířka, výška]: [800, 600], [1200, 800] nebo [1600, 1200] jsou určitě v pohodě.