forked from airat77786/MQL5Book
86 lines
2.7 KiB
MQL5
86 lines
2.7 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| SymbolFilterVolumes.mq5 |
| |||
//| Copyright 2022, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//| Print out volume related limits for selected symbols |
| |||
//+------------------------------------------------------------------+
| |||
#property script_show_inputs
| |||
| |||
#include "..\..\Include\SymbolFilter.mqh"
| |||
| |||
input bool MarketWatchOnly = true;
| |||
input double MinimalContractSize = 0;
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Script program start function |
| |||
//+------------------------------------------------------------------+
| |||
void OnStart()
| |||
{
| |||
SymbolFilter f; // filter object
| |||
string symbols[]; // array for resulting names
| |||
double volumeLimits[][4]; // array for output data
| |||
| |||
// specify properties to read from symbols
| |||
ENUM_SYMBOL_INFO_DOUBLE volumeIds[] =
| |||
{
| |||
SYMBOL_VOLUME_MIN,
| |||
SYMBOL_VOLUME_STEP,
| |||
SYMBOL_VOLUME_MAX,
| |||
SYMBOL_VOLUME_LIMIT
| |||
};
| |||
| |||
// apply filter by contract size (if larger than provided input)
| |||
// and request volume-related specs for matched symbols
| |||
f.let(SYMBOL_TRADE_CONTRACT_SIZE, MinimalContractSize, IS::GREATER)
| |||
.select(MarketWatchOnly, volumeIds, symbols, volumeLimits);
| |||
| |||
const int n = ArraySize(symbols);
| |||
PrintFormat("===== Volume limits of the symbols (%d) =====", n);
| |||
string title = "";
| |||
for(int i = 0; i < ArraySize(volumeIds); ++i)
| |||
{
| |||
title += "\t" + EnumToString(volumeIds[i]);
| |||
}
| |||
Print(title);
| |||
for(int i = 0; i < n; ++i)
| |||
{
| |||
Print(symbols[i]);
| |||
ArrayPrint(volumeLimits, 3, NULL, i, 1, 0);
| |||
}
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
/*
| |||
| |||
example output:
| |||
| |||
===== Volume limits of the symbols (13) =====
| |||
SYMBOL_VOLUME_MIN SYMBOL_VOLUME_STEP SYMBOL_VOLUME_MAX SYMBOL_VOLUME_LIMIT
| |||
EURUSD
| |||
0.010 0.010 500.000 0.000
| |||
GBPUSD
| |||
0.010 0.010 500.000 0.000
| |||
USDCHF
| |||
0.010 0.010 500.000 0.000
| |||
USDJPY
| |||
0.010 0.010 500.000 0.000
| |||
USDCNH
| |||
0.010 0.010 1000.000 0.000
| |||
USDRUB
| |||
0.010 0.010 1000.000 0.000
| |||
AUDUSD
| |||
0.010 0.010 500.000 0.000
| |||
NZDUSD
| |||
0.010 0.010 500.000 0.000
| |||
USDCAD
| |||
0.010 0.010 500.000 0.000
| |||
USDSEK
| |||
0.010 0.010 500.000 0.000
| |||
XAUUSD
| |||
0.010 0.010 100.000 0.000
| |||
BTCUSD
| |||
0.010 0.010 1000.000 0.000
| |||
SP500m
| |||
0.100 0.100 5.000 15.000
| |||
| |||
*/
| |||
//+------------------------------------------------------------------+
|