mql5/Include/Strategies/TestStrategy.mqh

68 lines
1.8 KiB
MQL5
Raw Permalink Normal View History

2025-08-16 12:30:04 -04:00
// TestStrategy.mqh
// A simple strategy for testing the EA framework. Generates frequent signals.
#property copyright "2025, Windsurf Engineering"
#property link "https://www.windsurf.ai"
#include "..\IStrategy.mqh"
class CTestStrategy : public IStrategy
{
private:
string m_symbol;
double m_last_tick;
public:
CTestStrategy(string symbol);
~CTestStrategy() {};
// --- IStrategy interface methods
virtual void Refresh();
virtual SignalType CheckSignal();
virtual string Name() { return "TestStrategy"; }
};
//+------------------------------------------------------------------+
//| Constructor |
//+------------------------------------------------------------------+
CTestStrategy::CTestStrategy(string symbol)
{
m_symbol = symbol;
m_last_tick = 0;
}
//+------------------------------------------------------------------+
//| Refresh |
//+------------------------------------------------------------------+
void CTestStrategy::Refresh()
{
// Nothing to refresh for this simple strategy
}
//+------------------------------------------------------------------+
//| CheckSignal |
//+------------------------------------------------------------------+
SignalType CTestStrategy::CheckSignal()
{
double current_bid = SymbolInfoDouble(m_symbol, SYMBOL_BID);
if(m_last_tick == 0)
{
m_last_tick = current_bid;
return SIGNAL_NONE;
}
SignalType signal = SIGNAL_NONE;
if(current_bid > m_last_tick)
{
signal = SIGNAL_BUY;
}
else if(current_bid < m_last_tick)
{
signal = SIGNAL_SELL;
}
m_last_tick = current_bid;
return signal;
}