SignalForge Discord Telegram Signal Copier
79 USD
Published:
13 April 2026
Current version:
2.20
Didn't find a suitable robot?
Order your own one
on Freelance
Go to Freelance
Order your own one
on Freelance
How to buy а trading robot or an indicator
Run your EA on
virtual hosting
virtual hosting
Test аn indicator/trading robot before buying
Want to earn in the Market?
How to present a product for a sell-through
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register

This Python script receives TradingView webhook alerts and sends them to SignalForge automatically.
REQUIREMENTS:
- Python 3 (download from python.org)
- Flask library
SETUP:
1. Save the code below as "tv_bridge.py"
2. Open CMD and run: pip install flask
3. Run: python tv_bridge.py
4. The script starts on port 5000
5. In SignalForge EA: set "Enable file-based signals" = true
LOCAL TESTING:
Open a second CMD window and run:
curl -X POST http://localhost:5000/signal -d "Buy XAUUSD 4750 SL:4720 TP:4800"
The EA should place the trade within 1 second.
TRADINGVIEW WEBHOOK SETUP:
1. Install ngrok (free): https://ngrok.com
2. Run: ngrok http 5000
3. Copy the https://...ngrok.io URL
4. In TradingView: Create Alert → check "Webhook URL"
5. URL: https://YOUR-NGROK-URL/signal
6. Alert message example: Buy {{ticker}} {{close}} SL:{{plot_0}} TP:{{plot_1}}
ALTERNATIVE: You can also route TradingView alerts through Telegram — SignalForge reads them automatically without any Python script.
===== CODE: tv_bridge.py =====
from flask import Flask, request
import os
import time
from datetime import datetime
app = Flask(__name__)
COMMON_FOLDER = os.path.join(os.environ.get('APPDATA', ''), 'MetaQuotes', 'Terminal', 'Common', 'Files', 'SignalForge')
SIGNAL_FILE = os.path.join(COMMON_FOLDER, 'signals.txt')
PORT = 5000
os.makedirs(COMMON_FOLDER, exist_ok=True)
print(f"SignalForge TV Bridge running on port {PORT}")
print(f"Signal file: {SIGNAL_FILE}")
print(f"Webhook URL: http://localhost:{PORT}/signal")
print("Waiting for alerts...")
@app.route('/signal', methods=['POST'])
def receive_signal():
try:
data = request.get_data(as_text=True).strip()
if not data or len(data) < 3:
return "empty", 400
timestamp = datetime.now().strftime('%H:%M:%S')
print(f"[{timestamp}] Received: {data}")
with open(SIGNAL_FILE, 'w', encoding='ascii', errors='replace') as f:
f.write(data + '\n')
print(f"[{timestamp}] Written to signals.txt")
return "ok", 200
except Exception as e:
print(f"Error: {e}")
return f"error: {e}", 500
@app.route('/health', methods=['GET'])
def health():
return "running", 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=PORT, debug=False)
===== END OF CODE =====
Questions? Send me a message or post in the comments.