Announcement

Collapse
No announcement yet.

Dynaorder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dynaorder

    I have an efs nearly ready for Dynaorder automation. Is this dyna system reliable with efs and interactive brokers? Who is best to code the efs would it be dynaorder themselves or someone else?

    I also hear there maybe an interface that has similar features of dynaorder that esignal may release to transmit orders directly to IB; has anyone got any info? Also how good is current efs formula to transmit orders directly to IB does it work ok or do you still have to hit a final transmit button?

    Regards
    Spam

  • #2
    Check out this linkhere

    Read through the posts, I beleive it may answer questions you have and lead you closer to what you are seeking.

    Fibbgann
    Excellent book on JavaScript for beginners

    Comment


    • #3
      IB and EFS...

      Spam,

      If you would like, I can show you the routines that I use to code the IB stuff in efs. I've created a "TradeMarket" function that handles most of it.

      PHP Code:
      function TradeMarket(TradeType) {
       var 
      host=dots5.call("IsHostRunning");
      // var conn=dots5.call("IsHostConnected");
      var conn 1;
      // debugPrintln("Host :"+host+"Conn :"+conn);
       
      if ((host == 1) && (conn == 1)) {
      // debugPrintln("Host/Conn/vRT Connected!");

      //  format symbol...
        
      var tsymbol getSymbol();
         
      PosCount tsymbol.split(" ");
          if (
      PosCount[0]) { tsymbol PosCount[0]; }
      //  debugPrintln(tsymbol)

        
      if (TradeType == 1) {
        
      //  New Buy Order
       
      debugPrintln("Executing BUY Order");
          
      // Enter New LONG Trade
          
      EntryOrderID=dots5.call("BuyMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",DefEntryContracts);
          
      debugPrintln("Stop Level "+nStopPrice);
        
      //  StopOrderID=dots5.call("SellStop","ES","FUT",ExpText,"",0,"GLOBEX","",DefEntryContracts, nStopPrice);

          
      StrategyisInTrade true;
          
      StrategyisLong true;
          
      StrategyisShort false;
               
      nEntryPrice close();
               
      nStopPrice nEntryPrice-Stop1Level;
           
      //    PTMode = 0;
          
      StopStage 0;
          
      TrailingStopPriceLevel 0;
          
      TrailingStopBar BLBarOffset;
          
      testcheckstops();
          
      OpenContracts += DefEntryContracts;
        }
        if (
      TradeType == 2) {
        
      // New Sell Order
       
      debugPrintln("Executing SELL Order");
          
      //  Enter New SHORT Order
          
      OrderID=dots5.call("SellMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",DefEntryContracts);
          
      debugPrintln("Stop Level "+nStopPrice);
       
      //   StopOrderID=dots5.call("BuyStop","ES","FUT",ExpText,"",0,"GLOBEX","",DefEntryContracts, nStopPrice);

          
      StrategyisInTrade true;
          
      StrategyisLong false;
          
      StrategyisShort true;
               
      nEntryPrice close();
               
      nStopPrice nEntryPrice+Stop1Level;
          
      //     PTMode = 0;
          
      StopStage 0;
          
      TrailingStopPriceLevel 9999999;
          
      TrailingStopBar BLBarOffset;
          
      testcheckstops();
           
      OpenContracts += DefEntryContracts;
        }
        if (
      TradeType == 3) {
         if (
      PTMode == 0) {
          
      //  New Long PT Exit #1
          
      debugPrintln("Executing LONG PT#1 Order");
          
      PTOrderID=dots5.call("SellMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
          
      OpenContracts 0;
         } 
         if (
      PTMode == 1) {
          
      //  New Long PT Exit #2
          
      debugPrintln("Executing LONG PT#2 Order");
          
      PTOrderID2=dots5.call("SellMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
          
      OpenContracts 0;
         } 
      //    dots5.call("CancelOrder",StopOrderID);
         // OpenContracts -= Exit1Contracts;
          //  Enter New Stop Order
          
      if (OpenContracts 0) {
       
      //    StopOrderID=dots5.call("SellStop","ES","FUT",ExpText,"",0,"GLOBEX","",OpenContracts,nStopPrice);
          
      } else {
           
      StrategyisInTrade false;
           
      StrategyisLong false;
           
      StrategyisShort false;
          }
        }
        if (
      TradeType == 4) {
         if (
      PTMode == 0) {
          
      //  New Short PT Exit #1
          
      debugPrintln("Executing SHORT PT#1 Order");
          
      PTOrderID2=dots5.call("BuyMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
          
      OpenContracts 0;
         } 
         if (
      PTMode == 1) {
          
      //  New Short PT Exit #2
          
      debugPrintln("Executing SHORT PT#2 Order");
          
      PTOrderID2=dots5.call("BuyMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
          
      OpenContracts 0;
         } 
       
      //   dots5.call("CancelOrder",StopOrderID);
        //  OpenContracts -= Exit1Contracts;
          //  Enter New Stop Order
          
      if (OpenContracts 0) {
       
      //    StopOrderID=dots5.call("BuyStop","ES","FUT",ExpText,"",0,"GLOBEX","",OpenContracts,nStopPrice);
          
      } else {
           
      StrategyisInTrade false;
           
      StrategyisLong false;
           
      StrategyisShort false;
          }
        }
        if (
      TradeType == 5) {
        
      // Long Stop FailSafe
       //   dots5.call("CancelOrder",StopOrderID);
          //  Enter New Stop Order
       //   StopOrderID=dots5.call("SellStop","ES","FUT",ExpText,"",0,"GLOBEX","",OpenContracts,nStopPrice);
        
      }
        if (
      TradeType == 6) {
        
      // Short Stop FailSafe
       //   dots5.call("CancelOrder",StopOrderID);
          //  Enter New Stop Order
       //   StopOrderID=dots5.call("BuyStop","ES","FUT",ExpText,"",0,"GLOBEX","",OpenContracts,nStopPrice);
        
      }

        if (
      TradeType == 7) {
        
      // Long Stop Exit
          
      OrderID=dots5.call("SellMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
       
      //   dots5.call("CancelOrder",StopOrderID);
          //  Enter New Stop Order
        
      }
        if (
      TradeType == 8) {
        
      // Short Stop Exit
          
      OrderID=dots5.call("BuyMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
       
      //   dots5.call("CancelOrder",StopOrderID);
        
      }


        if (
      TradeType == 12) {
             if ((
      StrategyisLong) && (close() < nEntryPrice)) {
               
      LossCount += 1;
             }
             if ((
      StrategyisShort) && (close() > nEntryPrice)) {
               
      LossCount += 1;
             }
        
      //  Close All Open Positions
         
      if (StrategyisLong) {
          
      EntryOrderID=dots5.call("SellMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
         }
         if (
      StrategyisShort) {
          
      EntryOrderID=dots5.call("BuyMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",OpenContracts);
         }
          
      OpenContracts 0;
       
      //   dots5.call("CancelOrder",StopOrderID);
       //   dots5.call("CancelOrder",PTOrderID);
       //   dots5.call("CancelOrder",PTOrderID2);
          
      StrategyisInTrade false;
          
      StrategyisLong false;
          
      StrategyisShort false;
          
      StopStage 0;
          
      OpenContracts 0;
        }
        if (
      TradeType == 13) {
        
      //  Close All Open Positions
          
      OpenContracts 0;
       
      //   dots5.call("CancelOrder",StopOrderID);
       //   dots5.call("CancelOrder",PTOrderID);
       //   dots5.call("CancelOrder",PTOrderID2);
          
      StrategyisInTrade false;
          
      StrategyisLong false;
          
      StrategyisShort false;
          
      StopStage 0;
          
      OpenContracts 0;
        }

      //  New Multiple Position ADD/REMOVE Contract Code
        
      if (TradeType == 21) {  // Buy
          
      EntryOrderID=dots5.call("BuyMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",DefEntryContracts);
        }
        if (
      TradeType == 22) {  //  Sell
          
      EntryOrderID=dots5.call("SellMarket",tsymbol,"FUT",ExpText,"",0,"GLOBEX","",DefEntryContracts);
        }
       } 
      //  End if Host & Conn are true

      From my experience, Dynaorder and EFS work fine. You'll need to spend some time working out the details of your system's logic. But DO works very well with EFS.

      Brad
      Brad Matheny
      eSignal Solution Provider since 2000

      Comment


      • #4
        I am a non-programmer who has been trying to put a simple automated trading script for IB but to no avail. Basically the buggers at eSignal Support are not interested to help you RE: the IB plug-in. They leave it to Consultants who, of course, have other objectives than hold your hand.

        Despite adding a layer, Dynaorder , has worked perfectly and I am up and running.
        Download the soft, install it and try for yourself. www.dynaorder.com

        If someone is interested, I could share ithe script despite it being still a work in progress.

        Cheers.

        Andrei

        Comment


        • #5
          What type of orders do you find work best for Dynaorder and automated trading in general. Obviously limit orders are preferable but fills I assume will be a problem. What happens if you don't get filled for the total amount of shares required?

          Are market orders best for automated trading?

          How good is current efs formula to transmit orders directly to IB does it work directly or do you still have to hit a final transmit button to complete the order?



          Regards
          Spam

          Comment


          • #6
            Spam...

            It depends on your system..

            I use market orders for "I want in" or "I want out" type of situations.

            Limit order can also be used, but are more dependant on price action and order size. DO provides the features to poll the order for filledprice and silledsize. So you can check everything once the order is filled.

            B
            Brad Matheny
            eSignal Solution Provider since 2000

            Comment


            • #7
              Ok but what happens when the order is not filled. Do you fill the rest manually? Or will dynaorder realise this and complete a number of trades untill the order is filled?

              Regards
              Spam

              Comment


              • #8
                Spam,

                In the event you place a LIMIT order and it does not get filled, then you would have to CANCEL the open limit order and/or replace another order at a different price.

                With DO, you have complete control of the orders. After you place an order, you continue to check it for a "filled" status. If, let's say a certain amount of time has elapsed and the order is now filled, then you could cancel it and place a MARKET order to get in - or just replace another LIMIT order with a new price level.

                It is all up to you. Visit, www.dynaorder.com and check it out. Once you see the functions you will use, you will see how to create a function to accomplish all that you want.

                B
                Brad Matheny
                eSignal Solution Provider since 2000

                Comment


                • #9
                  Dynaorder code

                  I have been trying to get in touch with Dynaorder for some time now to review my code...

                  Can you help me out.

                  Thanks,

                  Jack.

                  Comment


                  • #10
                    What's up with your code??

                    DB (from Dynaorder) wrote to me a week ago and told me he was under the weather. So he might be away for a while.

                    What's up with your code?? is it working or not? I'll be happy to try to help.

                    B
                    Brad Matheny
                    eSignal Solution Provider since 2000

                    Comment

                    Working...
                    X