2026-01-31 07:59:15 +01:00
|
|
|
#include "M_SM_LIQUIDITY_ACTIVATED.mqh"
|
2026-04-30 15:51:09 +02:00
|
|
|
#include "M_SM_S1_WAIT_FVG_CREATED.mqh"
|
|
|
|
|
#include "M_SM_S1_WAIT_FVG_INVERTED_LONG.mqh"
|
|
|
|
|
#include "M_SM_S1_WAIT_FVG_INVERTED_SHORT.mqh"
|
2026-04-30 16:53:46 +02:00
|
|
|
#include "M_SM_S1_WAIT_TRADE_ACTIVATED.mqh"
|
2026-04-30 15:51:09 +02:00
|
|
|
#include "M_SM_WAIT_FVG_INVERTED_LONG.mqh"
|
|
|
|
|
#include "M_SM_WAIT_FVG_INVERTED_SHORT.mqh"
|
2026-01-31 07:59:15 +01:00
|
|
|
#include "M_SM_IN_TRADE.mqh"
|
|
|
|
|
#include "M_SM_RESET.mqh"
|
|
|
|
|
|
|
|
|
|
void M_StateMachine()
|
|
|
|
|
{
|
|
|
|
|
switch(stGVL.nStateMachine)
|
|
|
|
|
{
|
|
|
|
|
case SM_WAIT_FOR_START:
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case SM_LIQUIDITY_ACTIVATED:
|
|
|
|
|
M_SM_LIQUIDITY_ACTIVATED();
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case SM_WAIT_FVG_INVERTED:
|
2026-04-30 15:51:09 +02:00
|
|
|
if(stGVL.eCurrentDirection == DIR_LONG)
|
|
|
|
|
{
|
|
|
|
|
M_SM_WAIT_FVG_INVERTED_LONG();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
M_SM_WAIT_FVG_INVERTED_SHORT();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case SM_S1_WAIT_FVG_CREATED:
|
|
|
|
|
M_SM_S1_WAIT_FVG_CREATED();
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case SM_S1_WAIT_FVG_INVERTED:
|
|
|
|
|
if(stGVL.eCurrentDirection == DIR_LONG)
|
|
|
|
|
{
|
|
|
|
|
M_SM_S1_WAIT_FVG_INVERTED_LONG();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
M_SM_S1_WAIT_FVG_INVERTED_SHORT();
|
|
|
|
|
}
|
2026-01-31 07:59:15 +01:00
|
|
|
break;
|
|
|
|
|
|
2026-04-30 16:53:46 +02:00
|
|
|
case SM_S1_WAIT_TRADE_ACTIVATED:
|
|
|
|
|
M_SM_S1_WAIT_TRADE_ACTIVATED();
|
|
|
|
|
break;
|
|
|
|
|
|
2026-01-31 07:59:15 +01:00
|
|
|
case SM_IN_TRADE:
|
|
|
|
|
M_SM_IN_TRADE();
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case SM_RESET:
|
|
|
|
|
M_SM_RESET();
|
|
|
|
|
break;
|
|
|
|
|
}
|
2026-03-25 19:58:50 +01:00
|
|
|
E_STATEMACHINE nST = stGVL.nStateMachine;
|
|
|
|
|
E_STATEMACHINE nST_LAST = stGVL.nLASTStateMachine;
|
|
|
|
|
|
|
|
|
|
if(stGVL.nLASTStateMachine != stGVL.nStateMachine)
|
|
|
|
|
{
|
|
|
|
|
M_LogInfo("Statemachine changed to " + EnumToString(stGVL.nStateMachine));
|
|
|
|
|
stGVL.nLASTStateMachine = stGVL.nStateMachine;
|
|
|
|
|
}
|
2026-01-31 07:59:15 +01:00
|
|
|
}
|