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.

Stoploss Strategy
 Post subject: Stoploss Strategy Post rating: 0   New post Posted: Thu 27 Aug, 2015, 08:03 
User avatar

User rating: 0
Joined: Thu 27 Aug, 2015, 07:56
Posts: 1
Location: GermanyGermany
Hello,

I am learning to program in Java and as first programm i wanted to do sth simple, to create a program to put an stoploss to orders created manually, but it's not working and i cannot find the mistakes, i wonder if you could have a look and tell what is wrong and why.

Thank you very much


package test;

import com.dukascopy.api.Configurable;
import com.dukascopy.api.IAccount;
import com.dukascopy.api.IBar;
import com.dukascopy.api.IConsole;
import com.dukascopy.api.IContext;
import com.dukascopy.api.IEngine;
import com.dukascopy.api.IHistory;
import com.dukascopy.api.IIndicators;
import com.dukascopy.api.IMessage;
import com.dukascopy.api.IOrder;
import com.dukascopy.api.IStrategy;
import com.dukascopy.api.ITick;
import com.dukascopy.api.IUserInterface;
import com.dukascopy.api.Instrument;
import com.dukascopy.api.JFException;
import com.dukascopy.api.Period;

public class strat implements IStrategy{
   private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
    private IOrder order;

       @Configurable("Instrument")
       public Instrument instrument = Instrument.EURUSD;
       @Configurable("periode")
       public Period period = Period.TEN_SECS;
       @Configurable("Stop Loss In Pips")
       public double StopLossInPips = 5;
       @Override
       public void onAccount(IAccount arg0) throws JFException {
      // TODO Auto-generated method stub
      
   }

   @Override
   public void onBar(Instrument arg0, Period arg1, IBar arg2, IBar arg3) throws JFException {
      // TODO Auto-generated method stub
      
   }

   @Override
   public void onMessage(IMessage arg0) throws JFException {
      // TODO Auto-generated method stub
      
   }

   @Override
   public void onStart(IContext arg0) throws JFException {
      // TODO Auto-generated method stub
        boolean isLong;
        isLong = order.isLong();
        for ( IOrder order: getOrders( instrument)){
             if (isLong) {
                  order.setStopLossPrice(order.getOpenPrice() - StopLossInPips);
             }else order.setStopLossPrice(order.getOpenPrice() + StopLossInPips);
          }
      
   }

   @Override
   public void onStop() throws JFException {
      // TODO Auto-generated method stub
      
   }

   @Override
   public void onTick(Instrument arg0, ITick arg1) throws JFException {
      // TODO Auto-generated method stub
      
   }

}


 
 Post subject: Re: Stoploss Strategy Post rating: 0   New post Posted: Mon 31 Aug, 2015, 07:08 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
This article could be helpful:
https://www.dukascopy.com/wiki/#Order_Management

package test;
 
import com.dukascopy.api.Configurable;
import com.dukascopy.api.IAccount;
import com.dukascopy.api.IBar;
import com.dukascopy.api.IConsole;
import com.dukascopy.api.IContext;
import com.dukascopy.api.IEngine;
import com.dukascopy.api.IHistory;
import com.dukascopy.api.IIndicators;
import com.dukascopy.api.IMessage;
import com.dukascopy.api.IOrder;
import com.dukascopy.api.IStrategy;
import com.dukascopy.api.ITick;
import com.dukascopy.api.IUserInterface;
import com.dukascopy.api.Instrument;
import com.dukascopy.api.JFException;
import com.dukascopy.api.Period;
 
public class strat implements IStrategy{
   private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
 
   @Configurable("Instrument")
   public Instrument instrument = Instrument.EURUSD;
   @Configurable("periode")
   public Period period = Period.TEN_SECS;
   @Configurable("Stop Loss In Pips")
   public double StopLossInPips = 5;
   
   @Override
   public void onAccount(IAccount arg0) throws JFException {
      // TODO Auto-generated method stub
       
   }
 
   @Override
   public void onBar(Instrument arg0, Period arg1, IBar arg2, IBar arg3) throws JFException {
      // TODO Auto-generated method stub
       
   }
 
   @Override
   public void onMessage(IMessage arg0) throws JFException {
      // TODO Auto-generated method stub
       
   }
 
   @Override
   public void onStart(IContext arg0) throws JFException {
      // TODO Auto-generated method stub
      context = arg0;
      engine = context.getEngine();
      for (IOrder order : engine.getOrders(instrument)) {
         if (order.isLong()) {
            order.setStopLossPrice(order.getOpenPrice() - StopLossInPips * instrument.getPipValue());
         } else {
            order.setStopLossPrice(order.getOpenPrice() + StopLossInPips * instrument.getPipValue());
         }
      }
   }
 
   @Override
   public void onStop() throws JFException {
      // TODO Auto-generated method stub
       
   }
 
   @Override
   public void onTick(Instrument arg0, ITick arg1) throws JFException {
      // TODO Auto-generated method stub
       
   }
 
}


 

Jump to:  

  © 1998-2024 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