VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Platforms and export

MultiCharts Tutorial: Taiwan Fees, Data, First Strategy

Traders in Taiwan can get MultiCharts through a broker edition or a licensed edition from Kway Information, and the order after that is the same: connect TAIEX futures data, load a simple strategy, change the backtest settings to be close to actual trading, then read the report. The cost has three parts: the software fee or contract threshold, the data source fee, and the commission paid to reach the threshold.

By · Published · updated · Editorial policy

Contents
  1. MultiCharts tutorial: how do you get started in Taiwan?
  2. How much does MultiCharts cost? Broker edition vs licensed edition fees
  3. What is the difference between the broker edition and the licensed edition of MultiCharts?
  4. How do you connect TAIEX futures data in MultiCharts?
  5. How do you write your first MultiCharts strategy? What the five blocks of a day-trading signal do
  6. Which settings should you change before backtesting?
  7. Where can you get a strategy if you do not want to write MultiCharts code yourself?
  8. Frequently asked questions
  9. References

MultiCharts tutorial: how do you get started in Taiwan?

The starting point of any MultiCharts tutorial is getting the software. Traders in Taiwan have two routes: the broker edition that brokers such as Yuanta Futures and Capital Futures provide under the conditions they announce, or the licensed edition bought from Kway Information. The steps after that are the same: connect TAIEX futures data, load a simple strategy, change the backtest settings to be close to actual trading, then read the report.

MultiCharts is a trading platform built around price charts. You can write strategies, backtest them on historical data, and then connect to a broker account to place orders automatically. Its strategy language is PowerLanguage, a programming language that describes entry and exit conditions in sentences close to English, and it is very similar to TradeStation's EasyLanguage. Kway Information is MultiCharts' distributor in Taiwan; the broker edition is what a broker, after obtaining a license from the vendor, offers its customers under the conditions the broker announces.

From either route, the order that follows is the same, and the order itself is the point:

  1. Connect data. Pick a data source, set the TAIEX futures symbol and session, and confirm the historical backfill is long enough.
  2. Load the first strategy. Use a day-trading signal with a simple structure where every line makes sense. The goal is to learn how the software runs, not to get an attractive report.
  3. Change the backtest settings. MultiCharts' defaults include no commission or slippage, so set them before you backtest.
  4. Read the report. Check first that the number of trades and the direction of net profit look right, then look at the other numbers.
Two paths lead to MultiCharts, the broker edition or a Kway license, and merge into the same four steps: connect data, load a strategy, set the backtest parameters, read the report Two paths, one set of steps Two ways to get it, same steps after Broker Kway 1 2 3 4 Connect data Load strategy Backtest settings Read report The path only affects step 1. So: get data, rules, settings right.
Both ways of getting the software follow the same road after the first step: connect data, load the first strategy, change the backtest settings, read the report.

How much does MultiCharts cost? Broker edition vs licensed edition fees

MultiCharts costs in Taiwan have three parts: the software fee or the broker's contract threshold, the data source fee, and the extra commission paid to reach the threshold. The third is the one most often overlooked. The licensed edition's software fee is whatever Kway Information's website announces, and the broker edition's conditions are whatever each broker's announcement page says. These conditions change, so this article gives no amounts and explains only the structure.

Here is what each of the three looks like:

  • Software fee or contract threshold. The licensed edition means paying Kway Information for a license. The broker edition usually carries no separate software fee, but it requires the account to reach a certain number of contracts traded each month, or meet other conditions, and falling short can cost you eligibility. The threshold differs by broker and also gets adjusted.
  • Data source fees. The broker edition mostly comes with the broker's own quote data. With the licensed edition you pick the data source yourself; some are free to that broker's customers and some charge monthly. The cost depends on the data source.
  • Commission paid to meet the threshold. If you would normally trade only a few contracts a month, every extra contract you place to keep broker-edition eligibility costs commission and futures transaction tax, which is a real cost of using MultiCharts. This part appears on no price list, so you have to work it out yourself.

Hypothetical example

Suppose a broker requires 30 Mini-TAIEX contracts a month to keep the broker edition, and you normally trade only 10. For the extra 20 contracts, assume round-trip commission plus futures transaction tax is NT$60 per contract. The hidden cost is then NT$1,200 a month, about NT$14,400 a year. Put that number next to the licensed edition's annual fee, and only then is the comparison complete. All figures are hypothetical; the actual thresholds and rates are whatever the broker announces.

MultiCharts has three cost parts: the software fee and the data source appear on price lists, but the extra trading commission paid to reach a broker threshold appears on no bill; in a hypothetical example it comes to about NT$14k a year The third cost is hidden Example: 20 extra contracts a month Software On price list Data feed On price list Extra trading No bill ≈NT$14k/year The hidden part may be the largest. So: compare total cost per year.
MultiCharts money goes to three places. Nobody sends you a bill for the third, yet it may be the largest.

When comparing the two routes, add the three parts into one "total cost per year" and compare that, not just the software fee. For people whose normal trading volume already exceeds the threshold, the third part of the broker edition is close to zero. For people with low volume, or who want flexibility across several brokers, the third part can be higher than the licensed edition's annual fee.

What is the difference between the broker edition and the licensed edition of MultiCharts?

The broker edition and the licensed edition use the same PowerLanguage syntax, and strategies can move between them. They differ in data source, which broker accounts you can connect, feature completeness and the ongoing conditions for eligibility. If you are just learning to write strategies, the broker edition is enough. Consider the licensed edition when you need multiple data sources or several accounts at once.

The broker edition is MultiCharts that a broker, after obtaining a license, provides to its own customers, and it can usually connect only to that broker's quotes and that broker's accounts. The licensed edition is a license you buy yourself from Kway Information, with the data source and order account of your choosing. The core of both is the same software, so a strategy file you write in the broker edition still compiles and backtests in the licensed edition.

ItemBroker editionLicensed edition
How you get it and ongoing conditionsProvided by the broker; you must keep meeting the conditions the broker announcesLicense bought from Kway Information, used for the license term
Data sourceUsually tied to that broker's quotesYour choice of data source; several can be connected
Broker accounts you can connectThat broker's accountYour choice from the supported list; several can be connected
PowerLanguage syntaxSameSame
Strategy portabilitySame; strategy files can be movedSame; strategy files can be moved
Who it suitsPeople just starting to write strategies, whose trading volume already meets the thresholdPeople who need multiple data sources or accounts, or who do not want to be bound by contract-count conditions
Broker edition vs licensed edition: data source, connectable accounts and terms of use change, while PowerLanguage syntax and strategy files stay the same Same core, different shell Broker edition vs. licensed edition What differs Data source Account Terms of use What stays Syntax Strategy file Strategy files move between the two. So: start with the broker edition.
What changes is the outer layer: data, accounts, eligibility conditions. What stays is the core: the same syntax and the same strategy files.

A practical approach is to work through the steps in the rest of this article on the broker edition. Once you are sure you will keep doing systematic trading and know which data sources you need, decide whether to switch to the licensed edition. Your strategy files do not become void when you change editions.

How do you connect TAIEX futures data in MultiCharts?

Connecting TAIEX futures data takes four steps: choose a data source, set the symbol, set the session, and confirm the backfill length and time zone. If any step is wrong, the backtest runs on a market other than the one you think it does. Each step has a matching check; do the check before moving to the next step.

  1. Choose a data source. A data source is the program that feeds live quotes and historical bars into MultiCharts. The broker edition usually uses the broker's data source directly. For the licensed edition, common choices are the broker's data source or one that Taiwan traders often use, such as Touchance; Touchance's features, fees and connection method are in the Touchance trading platform guide. Check: you can see that data source's symbol list in QuoteManager.
  2. Set the symbol. The codes for TAIEX futures (TX), Mini-TAIEX (MTX) and micro TAIEX futures (TMF) are written differently in each data source, so follow the data source's symbol list. Backtests usually use a continuous contract (a series that joins the contract months together) rather than a single month. The code rules for each contract are in TAIEX futures symbol codes: TX, MTX, TMF and month codes. Check: after you open a chart, the prices match what you see in your broker's quote software at the same time.
  3. Set the session. The TAIEX futures day session is 08:45–13:45 and the night session runs from 15:00 to 05:00 the next day. For a day-trading strategy that trades only the day session, set the session to the day session only; otherwise the strategy will receive signals in the night session. The exchange may change the sessions, so follow TAIFEX's contract specifications page. You can use Is the futures market open now? to convert each market's current sessions to Taiwan time and confirm them. Check: the times of the first and last bars on the chart are the open and close you set.
  4. Confirm the backfill length and time zone. Set the history length the backtest needs when you open the chart, in years or in number of bars. Set the time zone to Taiwan time, or daily bar dates and intraday session times will both be shifted. Check: the earliest bar on the chart has the date you want as the backtest start, and the daily bar dates match trading days.
Connect TAIEX futures data in four steps, each with a check: the source shows its symbol list, the symbol's prices match the broker, the session gives the right number of bars each day, and the backfill starts from the specified date Check every data step Steps at left, checks at right 1 2 3 4 Source Symbol Session Backfill List appears Prices match Bars per day Earliest date Session is the step most often wrong. So: count the bars in one day.
The four data steps and the check for each. Each has a simple comparison, so there is no guessing.

The third step goes wrong most often. Many people open data that includes the night session and think they are backtesting a day-session strategy; the extra night-session trades on the report spoil the whole result. After you open the chart, first count how many bars there are in one day: with 5-minute bars the day session has 60 a day, and with the night session there are many more.

How do you write your first MultiCharts strategy? What the five blocks of a day-trading signal do

A first day-trading signal needs only five blocks: parameter declarations, variables, entry conditions, exit conditions and a forced exit before the close. This section uses a generic opening range breakout teaching example, not an AlphaPrime (Valynox) signal or rule. It covers only what each block does and where it commonly goes wrong, with no code pasted; the full write-up is in From generated strategy to MultiCharts: a PowerLanguage comparison checklist.

An opening range breakout is a day-trading rule: record the high and low of the first few minutes after the open, go long if price breaks above the high, go short if it breaks below the low, and flatten before the close. Its rules and parameters are in ORB rules and parameters: range length, entry, stop and exit. It makes a good first strategy because every block gets used, and the results are easy to check by eye on the chart.

  1. Parameter declarations. This block holds the numbers you will want to adjust later: how many minutes the opening range covers, how many points the stop loss is, and the time after which no new entries are taken. The benefit of writing them as parameters is that you can change them in the settings window during backtesting without touching the code. Common mistake: hard-coding these numbers into the conditions, so every change means recompiling.
  2. Variables. This block holds values that change while the program runs: the current day's range high, the range low, and whether an entry has already been made today. Common mistake: not resetting the range variables at the start of a new day, so you trade today with yesterday's range.
  3. Entry conditions. This block describes when to buy and when to sell: the range has formed, price breaks above the range high to go long or below the range low to go short, and you are still within the time allowed for entries. Common mistake: deciding on a bar's close and filling on the same bar, which places an order at a price that has not happened yet. That is look-ahead bias.
  4. Exit conditions. This block holds the stop loss and the time exit. The stop loss exits when price moves a set number of points against the entry price; the time exit exits when a position has been held for more than a set number of bars without reaching the stop. Common mistake: writing only a stop loss and no profit target or time exit, so every winning trade ends by being closed at the close.
  5. Forced exit before the close. This block closes all positions at some time before the close, so that a day-trading strategy does not hold overnight. Common mistake: setting the exit time at 13:45, the moment of the close, but once the last bar finishes there is no next bar to fill on; move it to a few minutes before the close and the position actually exits while the market is open.
The five blocks of a generic intraday trading signal, in code order: adjustable parameters, today's range variables, range breakout entry, stop loss or time exit, and a forced exit before the close Five blocks, top to bottom Generic example, not an AlphaPrime rule 1 2 3 4 5 Parameters Variables Entry Exit Forced exit Adjustable values Today's high and low Range breakout Stop loss, time exit Exit before close Every trade should be checkable. So: check three trades on the chart.
The five blocks of a day-trading signal; top to bottom is the order of the code. This is a generic teaching structure, not an AlphaPrime rule.

After writing it, compile first, then add the signal to the chart and open the trade list. Pick any three trades and go back to the chart: did the entry bar really break the range, and did the stop-loss trade really touch the stop price? If all three are right, the structure of the strategy is right.

Which settings should you change before backtesting?

MultiCharts' default backtest settings make the report optimistic, so change five things before backtesting: intrabar fill simulation, commission, slippage, session and a fixed 1 contract. After changing them, compare the reports before and after; the gap is the part that was overstated. These settings are in the Strategy Properties window and must be set separately for each chart.

SettingDefaultRecommended
Intrabar fill simulationInfers the path within a bar using only the four prices open, high, low and closeTurn on Bar Magnifier, or use finer-resolution data
Commission0What your broker actually charges, including futures transaction tax, per contract per side
Slippage0At least one tick; market and stop orders can use more
SessionRuns whatever the data containsSame as the session you actually trade
ContractsSet in the strategy propertiesFixed 1 contract
Hypothetical example: with default settings net profit is NT$120k; after setting actual costs and Bar Magnifier it is NT$70k, so the defaults overstated it by NT$50k Defaults overstate profit Net profit, hypothetical NT$ example Default 120k Corrected 70k Gap −50k The gap is what the defaults over-count. So: set costs, fills and session first.
Default versus recommended settings. The gap between the two reports is the part the defaults overstated for you.

Why each of the five matters:

  • Intrabar fill simulation. Bar Magnifier is a MultiCharts feature that uses finer-resolution data (for example 1-minute bars or ticks) to reconstruct where price went first within a bar. Without it, when a 5-minute bar touches both the stop loss and the profit target, the software can only use a fixed assumption to decide which filled first, and the result often favors the strategy.
  • Commission. Enter the amount your broker actually charges plus futures transaction tax, per contract per side. Entering 0 makes strategies with many trades look best, and they are often the first to fail once fees are added. For how to estimate fees and how far the average trade needs to exceed costs, see Trading costs in backtests: commission, slippage and the average trade.
  • Slippage. Slippage is the gap between the signal price and the actual fill price. Market and stop orders usually fill worse than the trigger price, so enter at least one tick per side. Run again with double the slippage; if the strategy stops working, it depends on cheap fills.
  • Session. Keep it consistent with the session setting in the data connection section; a day-session strategy runs only the day session.
  • Fixed 1 contract. Fix the first backtest at 1 contract so the report can answer "does this rule work by itself?" Adding to positions or sizing contracts to your equity amplifies results and also hides problems in the rule itself.

Hypothetical example

Suppose a Mini-TAIEX day-trading strategy's report under the default settings shows 200 trades and net profit of NT$120k. After changing to round-trip commission plus futures transaction tax of NT$60 per contract and slippage of one tick per side (one Mini-TAIEX tick is NT$50), the cost per trade is NT$160, which is NT$32,000 across 200 trades. After turning on Bar Magnifier, a few trades that had hit the profit target before the stop within the same bar become stop-first, which takes off another NT$18,000. Net profit goes from NT$120k to NT$70k. The NT$50k that disappeared is not the strategy getting worse; it is the part the defaults had over-counted. All figures are hypothetical.

Pardo (2008) states the requirement for backtests plainly: every assumption in a backtest must be able to hold in actual trading, and an assumption that cannot hold must be replaced. These five settings are the five assumptions that most often do not hold.

Where can you get a strategy if you do not want to write MultiCharts code yourself?

Without writing from scratch, a strategy can come from three sources: examples shared by brokers and the community, existing rules you rewrite yourself, and a strategy search tool that generates strategies, which you export as PowerLanguage and import into MultiCharts to check. Strategies from all three must be backtested again with the settings from the section on what to change before backtesting, because someone else's report used someone else's fees, session and data.

  1. Examples shared by brokers and the community. The broker edition usually includes a few example signals, and people in the community also share them. The upside is that they are free and compile directly. What you need to do is open the code, compare each part with the five blocks in the first-strategy section to see what it does, and not use any part you do not understand.
  2. Rewriting an existing rule yourself. Write a public rule (for example a channel breakout or a moving average crossover) using the structure from the first-strategy section, then add your own stop loss and time exit. This is the fastest way to learn PowerLanguage, because the rule already exists and you only handle the structure.
  3. Generate with a strategy search tool, then export. A strategy search tool backtests automatically across a large number of rules and parameter combinations, keeps the candidates that pass the conditions you set, and exports them as PowerLanguage. The key on this route is not the generating but the checking after you import into MultiCharts.

Here is an actual example of what a strategy from the third route looks like. The market in this test is NQ (E-mini Nasdaq-100 futures) daily bars, 2019-01-02 to 2025-06-30, long and short, a fixed 1 contract, with $20 commission and $10 slippage counted on each trade. Its rule uses the highest high and lowest low (Highest/Lowest) as the only entry and exit conditions, with no stop loss, no profit target and no filter; it is a substitute rule built from standard indicators, not the subject of this article (the day-trading signal) itself. It is the one candidate kept, by return versus drawdown, out of the 1,024 candidates the search tried. Picking the one that performs well out of 1,024 after the fact always makes results look better. This is selection bias, and Bailey et al. (2014) explain why the more candidates you try, the more overstated the one that remains is. These numbers do not mean this rule earned this money, and nobody should expect the same result.

Source: AlphaPrime product engine (CPU), run 2026-10-31. NQ daily, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $10 slippage per trade.

NumberResult
Net profit (closed trades)$58,910
Max drawdown$33,420
Trades91
Win rate59.34%
Profit factor1.492
Average trade$647.36
Time in market11.84%
The actual fill price is the next bar's open: the signal bar closes at one price, the next bar opens at a worse price, and the gap between the signal close and the next open is where slippage comes from Real fill: next bar's open Signal bar, then the bar after it Next open Signal close Slippage You cannot fill at the signal close. So: fill at next open, add 1 tick.
Summary of the kept candidate in the report. Look first at the number of trades and the share of time in market, then at net profit against maximum drawdown; these numbers already include commission and slippage. NQ · daily · 2019-01-02 to 2025-06-30 · CPU engine backtest

The use of this report to a MultiCharts user is that it gives a set of numbers you can check against: 91 trades and 11.84% time in market. After you import it into MultiCharts and run it with the same data, the same session and the same $20 commission and $10 slippage, the number of trades and the direction of net profit should be close. A big gap in trade count is usually a different session or data length, and an opposite direction is usually a different fill assumption. AlphaPrime exports strategies that have been searched and validated as source code for six platforms, and PowerLanguage is one of them; the list of supported platforms is on platform export. The steps for checking item by item after importing into MultiCharts are in How to import a strategy into MultiCharts and match the backtest.

After importing a generated strategy into MultiCharts, check in order: whether it compiles, whether it runs on the same data and session, whether the trade count is close, whether net profit has the same sign; if the count or sign does not match, fix the settings first, then the code Mismatch? Fix settings first Check order after import 1 2 3 4 Compile Same data Trade count P/L sign If mismatch: Fix settings Differences usually come from settings. So: edit the code last.
From the generated strategy to a strategy checked in MultiCharts. If the check fails, go back and look at the settings; do not change the strategy.

The order of checks after import is fixed: compile successfully, then backtest with the same data and session, then compare the number of trades, and finally compare the direction of net profit. Once trade count and direction are both close, go on to look at individual trades. If the gap is large, go back first to the settings in the data connection section and in the section on what to change before backtesting; only if the gap is still large after that do you look at the code.

Here is a next step: with your own TAIEX futures day-session data, write the five blocks from the first-strategy section as one signal, backtest once with the default settings, then change the five settings as described in the pre-backtest section and backtest a second time. Note down the net profit gap and the trade count gap between the two reports. These two numbers tell you how much of your first MultiCharts strategy is the rule and how much is the defaults.

Frequently asked questions

Does the broker edition of MultiCharts require you to meet the contract threshold all the time?

For most broker editions, eligibility is an ongoing condition, such as monthly contracts traded or account assets, and in months you fall short you may lose access or be charged. The conditions differ by broker and also get adjusted, so follow the broker's announcement page. When you evaluate, count the commission paid on contracts you placed only to reach the threshold in the total cost.

Can MultiCharts connect TAIEX futures night session data?

Yes, provided the data source supplies night session data and you chose a session that includes the night session when you set up the symbol. A day-trading strategy that trades only the day session should not use a session that includes the night session; otherwise the strategy receives signals in the night session and the number of trades on the report goes up. After you open the chart, count the bars in one day to confirm the session is set correctly.

Is MultiCharts code the same as TradeStation's EasyLanguage?

PowerLanguage and EasyLanguage syntax are very close, and most simple strategies can move between them with only small changes. The differences are mainly in some reserved words, function names and details of order commands. After moving from one platform to the other, backtest again with the same data and fee settings, and compare the number of trades and the direction of net profit.

What does MultiCharts day-trading code need to include?

A complete day-trading signal has at least five blocks: parameter declarations, variables, entry conditions, exit conditions and a forced exit before the close. Without the last block, the strategy holds positions overnight, and then it is not day trading. Both the stop loss and the time exit go in the exit conditions, and the exit time is set a few minutes before the close, not at the moment of the close.

References

  • Taiwan Futures Exchange. Mini-TAIEX Futures. https://www.taifex.com.tw/enl/eng2/mTX
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.