39 lines
1.9 KiB
MQL4
//+------------------------------------------------------------------+
| |||
//| DisplacementOrderBlocksDump.mq4 |
| |||
//| Copyright 2026, Allan Niñal |
| |||
//| https://www.allanninal.dev/mql5 |
| |||
//+------------------------------------------------------------------+
| |||
//| Test EA (a test tool, not part of the indicator): dumps the 13 |
| |||
//| Displacement Order Blocks MT4 buffers and checks repainting in |
| |||
//| the Strategy Tester, via IndTest4/Dump4.mqh. The indicator runs |
| |||
//| over the whole history, so the final values are those of the |
| |||
//| running instance. Compare the CSVs with the Python reference: |
| |||
//| python3 tests/check_parity.py <dump folder> --mt4 |
| |||
//+------------------------------------------------------------------+
| |||
// SPDX-License-Identifier: LicenseRef-PolyForm-Noncommercial-1.0.0 (see LICENSE)
| |||
#property strict
| |||
| |||
#define DUMP4_BUFFERS "0,1,2,3,4,5,6,7,8,9,10,11,12"
| |||
#define DUMP4_PROBE "0,2,6,8" // new demand / supply zones, zones tested, zones broken
| |||
| |||
input int InpSwing = 3;
| |||
input int InpATR = 14;
| |||
input double InpDispMult = 1.0;
| |||
input double InpBodyPct = 55.0;
| |||
input int InpSearch = 12;
| |||
input int InpBaseMode = 0;
| |||
input int InpZoneMode = 0;
| |||
input int InpTestMode = 0;
| |||
input int InpBreakMode = 0;
| |||
input int InpMaxLive = 12;
| |||
| |||
double IndValue(const int buf,const int shift)
| |||
{
| |||
return(iCustom(NULL,0,"DisplacementOrderBlocks\\DisplacementOrderBlocks",InpSwing,InpATR,InpDispMult,InpBodyPct,InpSearch,
| |||
InpBaseMode,InpZoneMode,InpTestMode,InpBreakMode,InpMaxLive,
| |||
true,false,true,true,false,1000,60,15,true,C'38,120,90',C'150,52,60',C'110,110,110',
| |||
false,false,"alert.wav",false,false,true,true,false,buf,shift));
| |||
}
| |||
| |||
#include <IndTest4/Dump4.mqh>
| |||
//+------------------------------------------------------------------+
|