Każdy program, bez względu na to, do czego służy, musi przechowywać rozmaite informacje, czyli dane. W tym celu tworzy się zmienną, czyli coś w rodzaju szufladki o określonej wielkości pamięci, w której owe dane są umieszczane. W przypadku narzędzi inwestycyjnych mogą to być dane dotyczące na przykład odległości zlecenia stop loss od ceny otwarcia pozycji.
Aby budowany przez nas program przechował te dane w pamięci, musimy mu podać dwie kluczowe kwestie. Po pierwsze, nazwę (tzw. identyfikator) owej szufladki (zmiennej), a po drugie, rodzaj przechowywanych informacji, czyli typ danych (na przykład liczba całkowita). Trzymając się przykładu z poziomem stop lossa, moglibyśmy nadać zmiennej nazwę (identyfikator) SL albo stop_loss, albo zlecenie_obronne. Mamy tu spore pole do popisu, ale musimy trzymać się pewnych ograniczeń wynikających ze specyfiki języka programowania. Nazwy zmiennych nie mogą zawierać polskich znaków ani spacji (zamiast odstępu używa się podkreślenia). Dozwolone znaki to: (a..z), (A...Z), podkreślenie ( _ ) i cyfry (0...9). Tutaj należy pamiętać, że zmienne o nazwach ABC i abc to dwa zupełnie różne byty. Co istotne – nazwa zmiennej nie może się zaczynać od liczby, a jej długość nie może przekraczać 31 znaków. Ponadto nie można korzystać z słów zastrzeżonych, które są identyfikatorami wbudowanymi już w MQL i mają przypisaną ściśle określoną funkcję (na przykład operator...