forked from rosh/MQL5Book
49 lines
1.8 KiB
MQL5
49 lines
1.8 KiB
MQL5
//+------------------------------------------------------------------+
| |
//| SymbolFilterCurrency.mq5 |
| |
//| Copyright 2022, MetaQuotes Ltd. |
| |
//| https://www.mql5.com |
| |
//| Build an array of symbols with specific currencies |
| |
//+------------------------------------------------------------------+
| |
#property script_show_inputs
| |
| |
#include "..\..\Include\SymbolFilter.mqh"
| |
| |
input bool MarketWatchOnly = true;
| |
| |
//+------------------------------------------------------------------+
| |
//| Script program start function |
| |
//+------------------------------------------------------------------+
| |
void OnStart()
| |
{
| |
// instantiate a filter object
| |
SymbolFilter f;
| |
// prepare an array for results
| |
string symbols[];
| |
| |
// create a filter with condition on base currency and apply it
| |
f.let(SYMBOL_CURRENCY_BASE, "USD")
| |
.select(MarketWatchOnly, symbols);
| |
Print("===== Base is USD =====");
| |
ArrayPrint(symbols);
| |
| |
// reset the array
| |
ArrayResize(symbols, 0);
| |
| |
// add new condition on profit currency to the filter and apply it
| |
f.let(SYMBOL_CURRENCY_PROFIT, "USD", IS::NOT_EQUAL)
| |
.select(MarketWatchOnly, symbols);
| |
| |
Print("===== Base is USD and Profit is not USD =====");
| |
ArrayPrint(symbols);
| |
}
| |
//+------------------------------------------------------------------+
| |
/*
| |
| |
example output:
| |
===== Base is USD =====
| |
"USDCHF" "USDJPY" "USDCNH" "USDRUB" "USDCAD" "USDSEK" "SP500m" "Brent"
| |
===== Base is USD and Profit is not USD =====
| |
"USDCHF" "USDJPY" "USDCNH" "USDRUB" "USDCAD" "USDSEK"
| |
| |
*/
| |
//+------------------------------------------------------------------+
|