Dukascopy
 
 
Wiki JStore Search Login

Attention! Read the forum rules carefully before posting a topic.

    Try to find an answer in Wiki before asking a question.
    Submit programming questions in this forum only.
    Off topics are strictly forbidden.

Any topics which do not satisfy these rules will be deleted.

complex algorithm for money management
 Post subject: complex algorithm for money management Post rating: 0   New post Posted: Mon 10 Dec, 2012, 15:31 

User rating: 1
Joined: Wed 07 Mar, 2012, 05:56
Posts: 101
Location: New CaledoniaNew Caledonia
hello at all,

i would like to integrate in my strategy a real money management but i don't known how to do this. please see the attached file to known my algorithm.
i am looking a way to do this, a syntax or an idea.
can you put me on the right track?

eric


Attachments:
MoneyManag.pdf [11.1 KiB]
Downloaded 469 times
DISCLAIMER: Dukascopy Bank SA's waiver of responsability - Documents, data or information available on this webpage may be posted by third parties without Dukascopy Bank SA being obliged to make any control on their content. Anyone accessing this webpage and downloading or otherwise making use of any document, data or information found on this webpage shall do it on his/her own risks without any recourse against Dukascopy Bank SA in relation thereto or for any consequences arising to him/her or any third party from the use and/or reliance on any document, data or information found on this webpage.
 
 Post subject: Re: complex algorithm for money management Post rating: 0   New post Posted: Mon 10 Dec, 2012, 15:57 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
Unfortunately we do not provide with such service.
Please resort to External Programmers: https://www.dukascopy.com/swiss/english/forex/jforex/external/


 
 Post subject: Re: complex algorithm for money management Post rating: 0   New post Posted: Mon 10 Dec, 2012, 17:54 

User rating: 1
Joined: Wed 07 Mar, 2012, 05:56
Posts: 101
Location: New CaledoniaNew Caledonia
ok thank for your reply, but i want to do it. but i don't known where to start it and what i need to employ for do it : cycle, new class and so one??

but i will try to start the code.

in all cases thank for your job and your time. i'm beginner on programming and your help is much appreciate.

eric


 
 Post subject: Re: complex algorithm for money management Post rating: 3   New post Posted: Wed 26 Dec, 2012, 07:55 
User avatar

User rating: 70
Joined: Sat 22 Sep, 2012, 17:43
Posts: 118
Location: Brazil, Fortaleza, Ceará
This can be done in many ways - Here's one example that gets the job done without a single conditional if statement.

class mm - Risk Manager - drop in one instance where you need it.

public class mm
{
   // used to obtain current risk
   private final int OBTAIN_R = 0;

   // used to select path to new risk following a win
   private final int SELECT_W = 1;

   // used to select path to new risk following a loss
   private final int SELECT_L = 2;

   // current state
   Object[] state;

   // states: root
   Object[] ROOT = new Object[3];

   // states: left column
   Object[] L1 = new Object[3];
   Object[] L2 = new Object[3];
   Object[] L3 = new Object[3];

   // states: centre column
   Object[] C1 = new Object[3];
   Object[] C2 = new Object[3];
   Object[] C3 = new Object[3];
   Object[] C4 = new Object[3];
   Object[] C5 = new Object[3];
   Object[] C6 = new Object[3];

   // states: right column
   Object[] R1 = new Object[3];

   // constructor: configures the graph structure according to the spec
   public mm()
   {
      ROOT[OBTAIN_R] = new Double(3d/100d);
      ROOT[SELECT_W] = L1;
      ROOT[SELECT_L] = C1;

      L1[OBTAIN_R] = new Double(3d/100d);
      L1[SELECT_W] = L2;
      L1[SELECT_L] = C1;

      L2[OBTAIN_R] = new Double(3d/100d);
      L2[SELECT_W] = L3;
      L2[SELECT_L] = C1;

      L3[OBTAIN_R] = new Double(4d/100d);
      L3[SELECT_W] = ROOT;
      L3[SELECT_L] = C1;

      C1[OBTAIN_R] = new Double(2d/100d);
      C1[SELECT_W] = R1;
      C1[SELECT_L] = C2;

      C2[OBTAIN_R] = new Double(1d/100d);
      C2[SELECT_W] = C3;
      C2[SELECT_L] = C2;

      C3[OBTAIN_R] = new Double(1d/100d);
      C3[SELECT_W] = C4;
      C3[SELECT_L] = C3;

      C4[OBTAIN_R] = new Double(1d/100d);
      C4[SELECT_W] = C5;
      C4[SELECT_L] = C4;

      C5[OBTAIN_R] = new Double(1d/100d);
      C5[SELECT_W] = C6;
      C5[SELECT_L] = C5;

      C6[OBTAIN_R] = new Double(1d/100d);
      C6[SELECT_W] = ROOT;
      C6[SELECT_L] = C6;

      R1[OBTAIN_R] = new Double(2d/100d);
      R1[SELECT_W] = ROOT;
      R1[SELECT_L] = C2;

      state = ROOT;
   }

   // commit - move on to next node on losing path
   public void bookLoss()
   {
      state = (Object[])state[SELECT_L];
   }

   // commit - move on to next node on winning path
   public void bookWin()
   {
      state = (Object[])state[SELECT_W];
   }

   // return - risk at current node
   public double getRisk()
   {
      return ((Double)(state[OBTAIN_R])).doubleValue();
   }

   // peek (without moving) risk at losing node from current node
   public double getRiskOnLoss()
   {
      return ((Double)((Object[])state[SELECT_L])[OBTAIN_R]).doubleValue();
   }

   // peek (without moving) risk at winning node from current node
   public double getRiskOnWin()
   {
      return ((Double)((Object[])state[SELECT_W])[OBTAIN_R]).doubleValue();
   }

   // reset to root node
   public void reset()
   {
      state = ROOT;
   }
}



class testmm - Risk Manager Tester - Place in same directory as the manager to test it out.

public class testmm
{
   public static void main(String[] args) throws Exception
   {
      // create a new risk managers
      mm manager = new mm();

      System.out.println("======================================================");
      System.out.println("mm initial risk: " + manager.getRisk());
      System.out.println("mm risk on loss will be: " + manager.getRiskOnLoss());
      System.out.println("mm risk on  win will be: " + manager.getRiskOnWin());
      System.out.println("======================================================");

      // simulate 30 trades
      int trade = 0;

      while(trade < 30)
      {
         System.out.println("current risk after trade " + trade + " : " + manager.getRisk());
         System.out.println("risk on loss will be: " + manager.getRiskOnLoss());
         System.out.println("risk on  win will be: " + manager.getRiskOnWin());

         // generate random 0 or 1 to mean loss or win
         if(Math.round(Math.random()) == 0)
         {
            // post increment trade then print
            System.out.println(++trade + " TRADE LOSS... ");
           
            // tell manager we've had a loss
            manager.bookLoss();
         }
         else
         {
            // post increment trade then print
            System.out.println(++trade + " TRADE WIN... ");

            // tell manager we've had a win
            manager.bookWin();
         }
         System.out.println("------------------------------------------------------");
      }

      System.out.println("======================================================");
      System.out.println("final risk after trade " + trade + " : " + manager.getRisk());
      System.out.println("risk on loss will be: " + manager.getRiskOnLoss());
      System.out.println("risk on  win will be: " + manager.getRiskOnWin());
      System.out.println("======================================================");
   }
}



Sample output:

======================================================
mm initial risk: 0.03
mm risk on loss will be: 0.02
mm risk on  win will be: 0.03
======================================================
current risk after trade 0 : 0.03
risk on loss will be: 0.02
risk on  win will be: 0.03
1 TRADE LOSS...
------------------------------------------------------
current risk after trade 1 : 0.02
risk on loss will be: 0.01
risk on  win will be: 0.02
2 TRADE LOSS...
------------------------------------------------------
current risk after trade 2 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
3 TRADE LOSS...
------------------------------------------------------
current risk after trade 3 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
4 TRADE WIN...
------------------------------------------------------
current risk after trade 4 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
5 TRADE LOSS...
------------------------------------------------------
current risk after trade 5 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
6 TRADE LOSS...
------------------------------------------------------
current risk after trade 6 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
7 TRADE WIN...
------------------------------------------------------
current risk after trade 7 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
8 TRADE WIN...
------------------------------------------------------
current risk after trade 8 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
9 TRADE LOSS...
------------------------------------------------------
current risk after trade 9 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
10 TRADE LOSS...
------------------------------------------------------
current risk after trade 10 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
11 TRADE LOSS...
------------------------------------------------------
current risk after trade 11 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
12 TRADE LOSS...
------------------------------------------------------
current risk after trade 12 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
13 TRADE WIN...
------------------------------------------------------
current risk after trade 13 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.03
14 TRADE WIN...
------------------------------------------------------
current risk after trade 14 : 0.03
risk on loss will be: 0.02
risk on  win will be: 0.03
15 TRADE LOSS...
------------------------------------------------------
current risk after trade 15 : 0.02
risk on loss will be: 0.01
risk on  win will be: 0.02
16 TRADE LOSS...
------------------------------------------------------
current risk after trade 16 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
17 TRADE LOSS...
------------------------------------------------------
current risk after trade 17 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
18 TRADE WIN...
------------------------------------------------------
current risk after trade 18 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
19 TRADE WIN...
------------------------------------------------------
current risk after trade 19 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
20 TRADE WIN...
------------------------------------------------------
current risk after trade 20 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
21 TRADE LOSS...
------------------------------------------------------
current risk after trade 21 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
22 TRADE LOSS...
------------------------------------------------------
current risk after trade 22 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
23 TRADE LOSS...
------------------------------------------------------
current risk after trade 23 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.01
24 TRADE WIN...
------------------------------------------------------
current risk after trade 24 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.03
25 TRADE LOSS...
------------------------------------------------------
current risk after trade 25 : 0.01
risk on loss will be: 0.01
risk on  win will be: 0.03
26 TRADE WIN...
------------------------------------------------------
current risk after trade 26 : 0.03
risk on loss will be: 0.02
risk on  win will be: 0.03
27 TRADE WIN...
------------------------------------------------------
current risk after trade 27 : 0.03
risk on loss will be: 0.02
risk on  win will be: 0.03
28 TRADE WIN...
------------------------------------------------------
current risk after trade 28 : 0.03
risk on loss will be: 0.02
risk on  win will be: 0.04
29 TRADE WIN...
------------------------------------------------------
current risk after trade 29 : 0.04
risk on loss will be: 0.02
risk on  win will be: 0.03
30 TRADE LOSS...
------------------------------------------------------
======================================================
final risk after trade 30 : 0.02
risk on loss will be: 0.01
risk on  win will be: 0.02
======================================================


Attachments:
testmm.java [1.92 KiB]
Downloaded 301 times
mm.java [2.74 KiB]
Downloaded 314 times
DISCLAIMER: Dukascopy Bank SA's waiver of responsability - Documents, data or information available on this webpage may be posted by third parties without Dukascopy Bank SA being obliged to make any control on their content. Anyone accessing this webpage and downloading or otherwise making use of any document, data or information found on this webpage shall do it on his/her own risks without any recourse against Dukascopy Bank SA in relation thereto or for any consequences arising to him/her or any third party from the use and/or reliance on any document, data or information found on this webpage.
 
 Post subject: Re: complex algorithm for money management Post rating: 0   New post Posted: Fri 28 Dec, 2012, 11:27 

User rating: 1
Joined: Wed 07 Mar, 2012, 05:56
Posts: 101
Location: New CaledoniaNew Caledonia
thanks you criticalsection.

it's a very good example for me to start the code.

eric


 

Jump to:  

  © 1998-2025 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com