67 lines
1.8 KiB
MQL5
67 lines
1.8 KiB
MQL5
// 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;
| |||
}
|