OPEN-SOURCE SCRIPT
Random State Machine Strategy

📌 Random State Machine Strategy (Educational)
This strategy showcases a randomized entry model driven by a finite state machine, integrated with user-defined exit controls and a full-featured moving average filter.
🧠 Trade Entry Logic
Entries occur only when:
A random trigger occurs (~5% probability per bar)
The state machine accepts a new transition (sm.step())
Price is:
Above the selected MA for long entries
Below the selected MA for short entries
This ensures that entries are both stochastically driven and trend-aligned, avoiding frequent or arbitrary trades.
⚙️ How It Works
Randomized Triggers
A pseudo-random generator (seeded with time and volume) attempts to trigger state transitions.
Finite State Machine
Transitions are managed using the StateMachine from robbatt/lib_statemachine — credit to robbatt for the modular FSM design.
Controlled Reset
The state machine resets every N bars (default: 100) if at least two transitions have occurred. This prevents stale or locked states.
Backtest Range
Define a specific test window using Start and End Date inputs.
Risk & Exits
Specify risk in points and a target risk/reward ratio. TP is auto-computed. Timed and MA-based exits can be toggled.
🧪 How to Use
Enable Long or Short trades
Choose your Moving Average type and length
Set Risk per trade and R/R ratio
Toggle TP/SL, timed exit, or MA cross exit
Adjust the State Reset Interval to suit your signal frequency
📘 Notes
Educational use only — not financial advice
Random logic is used to model structure, not predict movement
Thanks to robbatt for the lib_statemachine integration
This strategy showcases a randomized entry model driven by a finite state machine, integrated with user-defined exit controls and a full-featured moving average filter.
🧠 Trade Entry Logic
Entries occur only when:
A random trigger occurs (~5% probability per bar)
The state machine accepts a new transition (sm.step())
Price is:
Above the selected MA for long entries
Below the selected MA for short entries
This ensures that entries are both stochastically driven and trend-aligned, avoiding frequent or arbitrary trades.
⚙️ How It Works
Randomized Triggers
A pseudo-random generator (seeded with time and volume) attempts to trigger state transitions.
Finite State Machine
Transitions are managed using the StateMachine from robbatt/lib_statemachine — credit to robbatt for the modular FSM design.
Controlled Reset
The state machine resets every N bars (default: 100) if at least two transitions have occurred. This prevents stale or locked states.
Backtest Range
Define a specific test window using Start and End Date inputs.
Risk & Exits
Specify risk in points and a target risk/reward ratio. TP is auto-computed. Timed and MA-based exits can be toggled.
🧪 How to Use
Enable Long or Short trades
Choose your Moving Average type and length
Set Risk per trade and R/R ratio
Toggle TP/SL, timed exit, or MA cross exit
Adjust the State Reset Interval to suit your signal frequency
📘 Notes
Educational use only — not financial advice
Random logic is used to model structure, not predict movement
Thanks to robbatt for the lib_statemachine integration
สคริปต์โอเพนซอร์ซ
ด้วยเจตนารมณ์หลักของ TradingView ผู้สร้างสคริปต์นี้ได้ทำให้มันเป็นโอเพ่นซอร์ส เพื่อให้เทรดเดอร์สามารถตรวจสอบและยืนยันการทำงานของสคริปต์ได้ ขอแสดงความชื่นชมผู้เขียน! แม้ว่าคุณจะสามารถใช้งานได้ฟรี แต่อย่าลืมว่าการเผยแพร่โค้ดซ้ำนั้นจะต้องเป็นไปตามกฎระเบียบการใช้งานของเรา
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมที่ ข้อกำหนดการใช้งาน
สคริปต์โอเพนซอร์ซ
ด้วยเจตนารมณ์หลักของ TradingView ผู้สร้างสคริปต์นี้ได้ทำให้มันเป็นโอเพ่นซอร์ส เพื่อให้เทรดเดอร์สามารถตรวจสอบและยืนยันการทำงานของสคริปต์ได้ ขอแสดงความชื่นชมผู้เขียน! แม้ว่าคุณจะสามารถใช้งานได้ฟรี แต่อย่าลืมว่าการเผยแพร่โค้ดซ้ำนั้นจะต้องเป็นไปตามกฎระเบียบการใช้งานของเรา
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมที่ ข้อกำหนดการใช้งาน