Hello everyone!

In my past I spent 3 years for manual trading, before I commenced to feel myself tired of constant repeat of the same actions.
Also I realized that I can't create my new trading system without making of custom indicator. This forced me to study programming.

Now I want to share with you my experience. I'll show you how it's possible to learn JAVA at home.

Who is this article for?

  • If you wish to program your own indicator or strategy, to automate your trading - this article is for you!
  • If you're new to FOREX, you're in search of your own trading system and don't know where to begin - this article is also can be useful for you!
  • If you don't want to spend years trying to become a professional programmer and wish to limit your knowledge, by learning only restricted variety of tasks - this article is for you!
  • Even if you hated math in school – it wouldn't harms you to study JAVA!

The main skill which will really help you – is googling. During your education, searching for hints and answers in internet will take 50% of an activity.

Let’s follow in order!

1. Learn JAVA language basics.

To write custom strategy or indicator you don't need to know a lot about programming language.
I learned a narrow variety of topics. Here they are (you need to study only first 9 points):

Plan in English - link

Plan in Russian - link

Please pay attention how much you should leave aside. I hope this will calm you down =)

From what to start your education? I will divide this material in two sections: THEORY and PRACTICE.

Here some tips how to handle the THEORY of JAVA:

  • There is no a single book which can good explain you everything. So while learning any new topic, read about it from different sources. Stock up by couple of books. Reading about the same topic in different words from different authors will simplify process of understanding.
  • Use tutorial videos on YouTube. They are free and a lot of them are quite good. Just search for a needed theme. Usually than more views video has, than better quality of lesson.
  • You won’t find a lot of things in the books. In these case an internet browser will help you. The majority of programming resources (support sites, tutorial videos etc.) are located in the Anglophone territory of internet. So if English isn’t your native tongue, don’t be lazy to use it.
  • If you ask for help on forums, remember one thing. Most of the programmers are men. And they help to women with greater enthusiasm. So if you’re not lucky to be born a woman, register yourself as a female. Add avatar of some pretty girl and you will get support easier =)


The learning pyramid states that practice is the best way to study.
You normally remember:

In programming It’s even more important. Because the only way to understand most of the topics – is to write code with it.

The key how you can do it at home – online interactive JAVA courses. You should browse for those, which has environment for typing of programming code and can check the correct execution of the tasks. Usually they have two separate windows. In one you see tips or example of JAVA code, in another you execute the task. After all, you press a button and server checks your work for correctness. Usually such online courses has support forums where you can get help from staff or from other students.

I recommend you to choose a free one. Absolutely no need to pay for these, if you’re going to code only Strategies and Indicators.

Because you will have to learn only a small part of JAVA language.

Here is example of how it looks:

Another one:

Be aware that in the beginning you won’t understand some features if JAVA. Do not be afraid when some lines of code which you copied from tutorial examples will be not clear for you. It’s normal =) Something you will understand as times goes by. Something will remain a mystery =) Just don’t stop and continue your progress!

When you will get enough experience, you will need to learn JForex API.

2. Learn JForex API

this point will be more clear when you will finish previous one

What is JForex API mean? In simple terms it’s code written by Dukascopy developers, which you will use to write and execute your own indicators or strategies.
During your education mainly you will learn to read and use a code made by other programmers.

Dukascopy has great resource materials of it API: https://www.dukascopy.com/wiki/#
with examples and explanations.

Create an empty Strategy in your JForex terminal https://www.dukascopy.com/wiki/#Create_a_strategy .
When you see unknown words ( like “onStart”, “onTick”, “onStop" ) browse in the WIKI to find explanation of it.
Try to make something simple for training. For example, write a Strategy which create Simple Moving Average line on the chart.

Also I advise you articles written by jlongo “Creating your first strategy”
https://www.dukascopy.com/swiss/english/forex/jforex/forum/viewtopic.php?p=66480 .
In the beginning they helped me out a lot!

If you faced with difficulties, don’t give up quickly, before ask for support on the Dukascopy Forum
Try to handle on your own. This will bring you more experience and satisfaction.

3. Study source codes of strategies/indicators made by other programmers

At some point you will need more sources for education. Same as painters steal ideas from each other, you also should search in source codes of other programmers.
Here you can get source codes of indicators https://www.dukascopy.com/client/jforexlib/publicrepo/com/dukascopy/api/JForex-API/2.12.33/

Open downloaded JAR file by archiver. You can launch any of these indicators in JForex platform and if you like some feature of it, look how it’s made and add to your code.
Search for code examples in Article Contest library https://www.dukascopy.com/fxcomm/fx-article-contest/?action=all§ion=all
They supplied by explanations and it’s easy to understand all ideas of author.


All these knowledge will help you to increase your performance as a trader. You will can test your trading ideas in short time. It will help you to release a lot of time and guarantee that you won’t miss a trading signal. Automatization of trading system will force you to formalize all entry/exit conditions and you will know the exact reason of every decision.
In the end, I can’t say that this way was too difficult.
If you scare of the apparent complexity of needful efforts, remember that the pleasure of further success will delight you for entire life!
Translate to English Show original