Skip to main content

3 posts tagged with "Yuan"

View All Tags

· 8 min read
CZ

Today, you can see a wide array of exchanges and data sources worldwide, each with its own unique API and ecosystem. Learning to use them and integrating them into an automated process is quite laborious.

An External System refers to data providers, exchanges, or other entities that are not part of Yuan. A Vendor acts as an intermediary between Yuan and external systems.

A Standard is a set of concepts, rules, guidelines, and characteristics designed to ensure consistent concepts among vendors and control the quality of vendor implementations. We aim to establish a unified standard applicable to all global markets, enabling investors to interact with any market by learning just this one standard.

Does the Standard Exist?

The fact is, we haven't heard of such a standard existing, which means it either hasn't been created yet or isn't well-known enough for us to be aware of it.

There are two possibilities for the absence of a standard: first, it may never exist; second, it simply doesn't exist yet.

A standard can be seen as a highly condensed abstraction of all vendor instances. If the information entropy of these instances is sufficiently high, it will be impossible to abstract a useful standard. No matter the level of standardization, it won't reduce the cognitive cost of learning these instances. In such cases, even if a standard is established, there's no point in learning it.

If an ultimate standard exists, we can always strive to find it.

Why Us?

  1. We, NTNL, are a free alliance of traders, representing the interests of traders;
  2. We do not have a specific stance on external systems;
  3. We do not have as many legal and compliance responsibilities as external systems;

Concept Consistency

When we talk about certain terms and concepts, they should be consistent and unambiguous for all vendors.

The standard concepts defined by Yuan and the external concepts defined by external systems will inevitably differ. Vendors, playing the role of connecting external systems with Yuan, will need to convert standard concepts into external concepts.

After learning the standard concepts, users theoretically do not need to understand the internal terminology differences of each vendor to seamlessly and fully utilize the entire system. Conversely, if standard concepts do not successfully isolate external concepts, users must understand the external concepts of relevant external systems. Facing a large and complex system, it is difficult for users to comprehensively understand the external concepts of each external system. Even if they do, if the external system changes, all relevant users need to update their knowledge. This is a high-cost endeavor. In software engineering, using the "principle of least knowledge" for "encapsulation" to isolate changes and system boundaries has many benefits. This is analogous to the scenario we are discussing.

The fact is, different external systems are made by different people with different purposes, terminologies, and levels of openness. Not only is there no unity between markets with different cultural and national backgrounds, but even among emerging cryptocurrency exchanges, there is no unity.

The view is that from the perspective of external systems themselves, there is no intrinsic motivation for them to unify standards. This is because the responsibility of external systems is to make their own systems better, improving efficiency and quality. From a professional standpoint, unifying concepts is not the responsibility of external systems. External systems will not consider accommodating standards unless there are suitable standards and accommodating them is beneficial to themselves.

The fact is, there have been several attempts at standardization. For example, the CME Group in the USA, the CTP system in China's futures market, the FIX protocol in foreign exchange systems, global broker IBKR, the unified trading library CCXT for cryptocurrencies, and the full-chain interoperability protocol in blockchain.

The view is that these attempts at unification have made some progress, but they are all partial, not rigorous, or do not aim to become an open standard. Currently, the overall situation is fragmented, with some local unity. Investors, or capital, have the mobility to move to markets where they can more easily multiply. However, investors and capital cannot easily cross the barriers between unified markets, which are usually political, and sometimes technical. These barriers, in general, create a state of stasis. This mobility and stasis form a contradiction. If there is a good standard, it will enhance the mobility of investors, weaken the technical barriers between markets, but have no impact on the political barriers between markets. Local protectionism in markets will not be disrupted. Overall, this is an improvement to the current system, not a revolution.

If we want to achieve the goal where users can completely ignore the concepts of each external system, our standard must be the union of all external concepts to have complete expressiveness. Otherwise, our standard will have unfulfillable tasks, forcing users to learn the concepts of external systems, and our goal will fail.

However, blindly taking the union may lead to an overabundance of standard concepts. The standard should also remain concise, not become bloated.

A negative example is CCXT, which has somewhat unified the public interfaces of all exchanges but failed by compromising on some non-standard interfaces, allowing users to penetrate and call specific exchange interfaces through CCXT. This inevitably requires users to have some understanding of the concepts of specific exchanges while using CCXT. This undermines the benefits brought by the standard itself. When we integrated with CCXT, we found that it could not completely isolate the knowledge of specific exchanges. Ultimately, its positioning is as a code library, and its responsibility is to simplify the process of users calling specific exchanges. It only does part of the work, so I assert that it will not become a standard in the future.

If a vendor is defined as an application rather than a code library, the situation would be very different. "Developers calling a code library" and "users interacting with an application" are similar in form but different in content.

For example, the user's purpose might be "monitoring account information to detect anomalies," "pulling all data to study patterns," "executing order operations to change account positions," and so on, without caring whether it's by polling interfaces or subscribing to sockets. They only care about the possibility and effectiveness of achieving their goals, not the means of implementation. Therefore, the standard needs to be appropriately and assertively constructed according to the user's purpose.

Different user purposes will have different requirements for the timeliness and accuracy of data interaction.

  1. Research: No requirement for timeliness, but high requirement for accuracy. After all, a small error can lead to a big mistake.
  2. Monitoring: Basic requirement for timeliness, acceptable within a few seconds, as the purpose is to allow human intervention, and human intervention cannot be that fast. Therefore, further increasing timeliness beyond human reaction capabilities is meaningless. There is also a certain tolerance for accuracy, as humans can tolerate some false alarms.
  3. Execution: High requirement for timeliness, low requirement for data accuracy, as the accuracy of the execution environment is limited by the accuracy of the original data source and must have automatic fault tolerance and correction capabilities.

Additionally, computational resources and data scale will also affect engineering design, but these are not dimensions that need to be considered in defining standard concepts. Because computational power is limited, we only need to define standard concepts based on the user's purpose.

Summary

Concept consistency is a crucial principle of the standard.

With concept consistency, subsequent quality control and security can become automated aspects. The definition of these aspects, we consider introducing separately.

With concept consistency, traders can truly no longer need to learn the concepts of each external system individually.

· 3 min read
CZ

Everyone can rely on trading and easily enjoy the fruits of world economic development.

The ultimate goal of economic development is to improve people's living standards. Relying on trading and enjoying economic development is to improve your life. This is the original meaning of No Trade No Life.

In order to avoid over-expanding the topic and causing controversy, we first exclude several topics:

  1. We do not consider how to solve the problem of the gap between rich and poor. This is a political issue and a subject that government social managers need to consider;
  2. We do not consider how to directly promote economic development. This is a scientific issue and a topic that talents from all walks of life need to consider;

We look at each investor's perspective, think about how to manage their wealth in a scientific and efficient manner, and help investors overcome the difficulties encountered in the investment process.

We want to clarify the difficulty of investing and provide targeted solutions so that technology can enhance users' personal abilities and help users perform better investment operations.

So, what exactly is the difficulty with investing?

  1. The market is non-stop and investment is too busy (the contradiction between excessive information and inefficient processing capabilities);
  2. Diverse needs and too few options (the contradiction between diversified investment needs and a small supply of investment products);
  3. The ideas are beautiful but the knowledge is too little (the contradiction between investors’ expectations and investors’ abilities does not match);
  4. Taking things for granted and lack of awareness (Contradiction between investor’s sensibility and investor’s rationality)

To this end, we have proposed targeted solutions to the above problems:

  1. Utilize a series of technologies including AI, cloud computing, etc. to realize automatic transactions, free up users’ time and energy, and liberate productivity.
  2. Users can choose from market standard investment products, combine them with compound investment products, build investment portfolios, and establish private equity funds, thereby greatly enriching investment products to meet the investment needs of themselves and their surrounding friends.
  3. Find lessons from history and experience from knowledge. Enrich the testing system and build an investment and trading knowledge base to help novices become professional investors step by step and help all investors manage their expectations.
  4. Through data visualization, boring data is transformed into a format that can directly stimulate users' perceptual thinking through vision, helping users get rid of the inertia of taken-for-granted thinking.

If one day the vision of economic development is realized and people's living standards improve, it may be because:

  1. If investing is still important, then everyone has a good investment operating system. (I hope that will be our Yuan)
  2. If investment no longer matters, then communism has probably been achieved.

· 2 min read
CZ

Nowadays, Python is the most popular programming language in quantitative trading. VNPY, Zipline, PyAlgoTrade, and Backtrader are all written in Python. Python is widely used in quantitative trading, but it may not be the best language for the job. While it has many advantages, such as being easy to learn and having a great ecosystem for data science, quantitative investment platforms like Quantopian, JoinQuant, and QuantConnect have struggled to be profitable, despite the decreasing costs of internet infrastructure. This is because the software depends on computing power, which remains expensive.

Local installed software can be cheaper, but it can be difficult for non-professional traders to install and use. Platforms often provide a web GUI for users to overcome this issue. Some argue that local installed software is not cross-platform, cannot utilize cloud computing power, and are not highly available.

The reason why users don't want to pay for cloud computing power is that they do not see the value in it. Quantitative trading requires a lot of research and development, which can be costly in terms of computing power and time. If users are not convinced that they can make money from the platform, they will not pay for it.

Therefore, we propose a solution: replace Python with JavaScript. JavaScript can be used in the browser, allowing users to utilize their own computing power and eliminating the need for a local installation. The JavaScript ecosystem is mature and growing, making it the best ecosystem for web development and data science. And JavaScript is faster than Python.

We have built a quantitative platform with JavaScript that can run in a browser and on cloud servers. The research and development can be done completely free in the browser until users want to run the model in cloud servers. This way, users can gain value from the platform before paying for it, and the platform can pay for the computing power after receiving payment, making it a win-win solution.

In the future, we will share how we store and distribute data without cost, ensuring that the platform will always be running. With these advantages, we are confident that JavaScript is the best choice for the future of quantitative trading.