Expert-Advisor-Studio
Expert-Advisor-Studio copied to clipboard
Expert Advisors, Browser-based EA, Free Crypto / Forex Historical DATA API plugins, EA Codes Generator, Market Maker Bot, Crypto Options Plugin, DEX / Payment Gateway Plugins, Binance API, FIX API rel...
Expert Advisor Studio


News!!
Fintechee.io is our new marketplace for EA developers. Not only C/C++/Mql based EA/indicator can be sold there, but all the digital products can be sold via Fintechee.io. The copyrights are protected by the digital signature tech. Each download link will expire several minutes after an order is created.
Today(Aug. 12th, 2022), it's just released! And, we listed an EA(simplescalping, in production, only $10) there. The algo is based on Martingale, but it's very stable if you are patient enough to use it on the bigger time frame.
Currently, the payment gateway is connected with Paypal's sandbox. We will replace the sandbox version with the live payment gateway by next month(Sep. 2022). So, if you have a Paypal test(developer) account, then you can get any EA for free this month.
FIX Bridge(an individual version of WEB trader's backend)
We created a new version(FIX Bridge) for individual traders. It's for free FOREVER!!
Download link: https://www.fintechee.com/assets/fix-api/fintecheefixbridge.7z
Campaign(2022)
We started a new campaign(2022). Everyone can get a free license to use our FIX API trading platform individual version if he/she matches any one of the conditions below. The license will expire by the end of 2022.
A. Our partners' client B. Github user C. Youtuber D. Coupon
We have updated our campaign page: https://www.fintechee.com/marketing/campaign/
We will update the necessary files for the FIX API trading platform individual version regularly in our Github repository: https://github.com/fintechee/FIX-API-Pro/
Community and Trading Signals
We built a forum for sharing trading signals and trading skills. https://www.fintechee.org
https://www.fintechee.com/shared.html
Features
WEB-based | Javascript SDK |
Compatibility | Compatible with C/C++/MQL |
Any Data | You can import any data(historical/streaming) as long as you have data source. |
Auto Market Maker | You can send transactions to blockchains' SWAP smart contracts via Market Maker Bot |
Crypto Payment Gateway | Integration with crypto wallets(Scatter & Metamask) |
AI Enabled | Integration with Artificial Intelligence(AI) |
DEX | Integration with DEX and Clearing House |
Technical | Custom Indicators(You can create compound indicators -- make an indicator calculated based on another indicator) |
Trading Options | You can analyze Bitcoin or Ether's options by using our plugins. |
FIX API | FIX API individual version(Your browser -> local Java Package -> FIX API straightforward) |
White Label Enabled | We offer a FIX API institutional version and a dashboard for brokers' managers. |
MFA Enabled | Multiple Factor Authentication makes trading more secure |
APP Supported | APP(Android, already listed on our website and published on Google Play) |
EA Code Generator | We offer toolkits for generating Expert Advisor source codes. |
More Trading Instruments | Our FIX API-based backend supports Spread Betting. |
Price Aggregator | We have 20+ liquidity providers and our backend supports automated order router to make you trade via the cheapest trading channel. |
MAM-based Frontend | Multiple accounts management on the frontend(useful for trading arbitrage) |
MAM-based Backend | Our FIX API supports MAM to make the platform operable by individuals. |
Multiple Charts Management | Our WEB trader terminal(trader room) is designed to be responsive(UI layout). |
Investor Mode | Investor mode(guest mode, read-only) is allowed. |
Binance API | Integration with Binance API on the backend |
Trading Chaos | EA based on Trading Chaos(Bill Williams' book) |
Many Features | ...... Many features, you can explore them on your own. |
Usage
I received a lot of questions that asked how to use the Javasacript files in this repository. Actually, the usage is different from Nodejs, so, you DON'T need to use "node xxx.js" to run it. And, it's much EASIER to run them. Because they are browser-based, so, what you need to do is just open the WEB trader of Fintechee and copy-paste the source codes into the CONSOLE panel of the WEB trader and then click the RUN button. Then everything is DONE. Each file in this repo is indepenedent to each other. You can use them respectively. EAs and indicators are stored ONLY on your LOCAL browser and NEVER uploaded to the server side. We use Web LocalStorage. The secrets of your trading strategies are protected.
A simple manual: https://github.com/fintechees/Expert-Advisor-Studio/blob/master/simple_manual.txt
WEB Trader: https://www.fintechee.com/web-trader/
Plugins' usage: https://www.fintechee.com/plugins/
How to compile C/C++/MQL: https://www.fintechee.com/expert-advisor-cpp-compiler/
Live Stream
We started a live stream on Youtube
Please access our video stream page to see how we trade arbitrage in real-time(FIX API quotes vs Oanda).
Recommendation:
https://twitter.com/Fintechee1
Alternative:
https://www.fintechee.com/videostreaming/
Please access our demo to run the EAs: https://www.fintechee.com
You don't know how to use these EAs? Please check out our Youtube Channel, there are tutorials(https://www.youtube.com/channel/UCjBs_l6rUxhtZlfRhDuVGSg) You can find the source codes for the tutorials here: https://github.com/fintechee/tutorials
Please check our Github wiki to know more details about APIs.
Please check this tutorial(https://www.fintechee.com/expert-advisor-cpp-compiler) to learn how to use our Nodejs package(https://github.com/fintechee/Expert-Advisor-CPP-Compiler) to compile C/C++/MQL-based programs.
Release Notes
2020.7.7 three APIs were modified and added parameters.
- sendOrder
- modifyOrder
- closeTrade
2021.2.22 Added one API to improve the performance.
- getCurrentTick
2021.3.3 two APIs were modified.
- registerIndicator
We Added three parameters to this API. They are all callback functions: OnInit, OnDeinit, and OnRender. We added them to extend the functions in Fintechee and make our indicators much easier to manage and monitor. When you add an indicator to the chart, the OnInit callback function would be called. When you remove an indicator from the chart, the OnDeinit function would be called. After the main callback function is called, the OnRender function would be triggered. The OnRender function is very useful to add your own renderer to the platform. Our platform's renderer is based on D3js. If you are not familiar with it, you can use other alternative JS chart systems, such as ChartJS.
And, these callback functions are new features. Other platforms have no these parameters. Fortunately, this API is compatible with the older versions, so, you don't need to modify your old indicators.
- registerEA
We added one more parameter to this API, it's a callback function to receive a message when the transaction was triggered. For example, if you send an order to the backend, you don't need to block your process. Everything on our platform is ASYNC. So, you can continue to do analysis and just make this callback function available to wait for the notification from the backend. If the order is filled and a new trade is opened, then you will get notified.
And, this callback function is a new feature. Other platforms have no this parameter. Fortunately, this API is compatible with the older versions, so, you don't need to modify your old EAs.
2021.9.18 Added three APIs useful when the onTransaction event is triggered.
- getLatestTransBrokerName
- getLatestTransAccountId
- getLatestTrans
var BROKER_NAME = {
DEMO: "CC Demo"
}
var TIME_FRAME = {
M1: "M1",
M5: "M5",
M15: "M15",
M30: "M30",
H1: "H1",
H4: "H4",
D: "D",
W: "W",
M: "M"
}
var ORDER_TYPE = {
OP_BUY: "BUY",
OP_SELL: "SELL",
OP_BUYLIMIT: "BUY LIMIT",
OP_SELLLIMIT: "SELL LIMIT",
OP_BUYSTOP: "BUY STOP",
OP_SELLSTOP: "SELL STOP"
}
var WHERE_TO_RENDER = {
CHART_WINDOW: "CHART_WINDOW",
SEPARATE_WINDOW: "SEPARATE_WINDOW"
}
var DATA_NAME = {
TIME: "Time",
OPEN: "Open",
HIGH: "High",
LOW: "Low",
CLOSE: "Close",
HL2: "HL2",
HLC3: "HLC3",
HLCC4: "HLCC4"
}
var RENDER_TYPE = {
HISTOGRAM: "Histogram",
LINE: "Line",
ROUND: "Round",
DASHARRAY: "Dasharray"
}
var PARAMETER_TYPE = {
INTEGER: "Integer",
NUMBER: "Number",
BOOLEAN: "Boolean",
STRING: "String"
}
Common Function
function sma (dataInput, dataOutput, calculatedLength, period) {
var i = calculatedLength
if (calculatedLength > 0) {
i--
} else {
for (var j = 0; j < period - 1; j++) {
dataOutput[j] = 0
}
i = period - 1
}
var sum = 0
for (var j = i - period + 1; j < i; j++) {
sum += dataInput[j]
}
for (var j = i; j < dataInput.length; j++) {
sum += dataInput[j]
dataOutput[j] = sum / period
sum -= dataInput[j - period + 1]
}
}
function ema (dataInput, dataOutput, calculatedLength, period) {
var i = calculatedLength
var smthFctr = 2.0 / (period + 1)
if (i == 0) {
dataOutput[0] = dataInput[0]
i++
} else if (i == 1) {
} else {
i--
}
while (i < dataInput.length) {
dataOutput[i] = dataInput[i] * smthFctr + dataOutput[i - 1] * (1 - smthFctr)
i++
}
}
function smma (dataInput, dataOutput, calculatedLength, period) {
var i = calculatedLength
var sum = 0
if (i > 0) {
i--
} else {
i = period - 1
for (var j = 1; j < period; j++) {
dataOutput[i - j] = 0
sum += dataInput[i - j]
}
sum += dataInput[i]
dataOutput[i] = sum / period
i++
}
while (i < dataInput.length) {
sum = dataOutput[i - 1] * period - dataOutput[i - 1] + dataInput[i]
dataOutput[i] = sum / period
i++
}
}
function lwma (dataInput, dataOutput, calculatedLength, period) {
var i = calculatedLength
if (i > 0) {
i--
} else {
for (var j = 0; j < period - 1; j++) {
dataOutput[j] = 0
}
i = period - 1
}
var sum = 0
var diffsum = 0
var weight = 0
for (var j = 1; j < period; j++) {
sum += dataInput[i - j] * (period - j)
diffsum += dataInput[i - j]
weight += j
}
weight += period
while (i < dataInput.length) {
sum += dataInput[i] * period
dataOutput[i] = sum / weight
diffsum += dataInput[i]
sum -= diffsum
diffsum -= dataInput[i - period + 1]
i++
}
}
Please check our site for details. Fintechee
MIT License
https://github.com/fintechee transferred this repo to https://github.com/fintechees on Aug 25th 2021.