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.

Stop Loss Management Strategy Issue
 Post subject: Stop Loss Management Strategy Issue Post rating: 0   New post Posted: Thu 17 Nov, 2011, 04:14 

User rating: 3
Joined: Thu 17 Nov, 2011, 04:06
Posts: 39
Location: Canada, Ottawa
I have put together a small JForex strategy to manage my stop losses. In the event that a trade has been profitable throughout the past 30 minute bar, the stop loss is meant to be moved to break even. So far, this seems to work. However, if I move the stop loss beyond break even to protect profit, the strategy seems to be having issues as it moves the stop back to break even. This defies the logic and I cannot understand why this is happening. If anyone is able to help me find out how to correct this, it would be greatly appreciated.

package jforex;

import java.util.*;

import com.dukascopy.api.*;

public class SetBreakEven implements IStrategy {
   private IEngine engine;
   private IConsole console;
   private IHistory history;
   private IContext context;
   private IIndicators indicators;
   private IUserInterface userInterface;
   
   public void onStart(IContext context) throws JFException {
      this.engine = context.getEngine();
      this.console = context.getConsole();
      this.history = context.getHistory();
      this.context = context;
      this.indicators = context.getIndicators();
      this.userInterface = context.getUserInterface();
   }

   public void onAccount(IAccount account) throws JFException {
   }

   public void onMessage(IMessage message) throws JFException {
   }

   public void onStop() throws JFException {
   }

   public void onTick(Instrument instrument, ITick tick) throws JFException {
   }
   
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
        if (!period.equals(Period.THIRTY_MINS)) {
            return;
        }
       
        for (IOrder order : engine.getOrders(instrument)) {
            if (order.getState() == IOrder.State.FILLED) {
                if (order.isLong()) {
                    if (askBar.getLow() > order.getOpenPrice() && order.getStopLossPrice() < order.getOpenPrice()) {
                        order.setStopLossPrice(order.getOpenPrice());
                    }
                } else {
                    if (bidBar.getHigh() < order.getOpenPrice() && order.getStopLossPrice() > order.getOpenPrice()) {
                        order.setStopLossPrice(order.getOpenPrice());
                    }
                }
            }
        }
    }
}


 
 Post subject: Re: Stop Loss Management Strategy Issue Post rating: 0   New post Posted: Thu 17 Nov, 2011, 17:42 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
There are no such restrictions on setting Stop Loss price. Regardless on the price moves you can always set stop loss price at any price (of course some of prices will cause an immediate order close). Please consider the example strategy:
https://www.dukascopy.com/wiki/index.php ... ss_changes
To see what actually happens, consider logging messages that you receive in onMessage and/or the order, tick and tick price values, see:
https://www.dukascopy.com/wiki/index.php ... ing_values


 

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