EDIT: My data series' are based on IQFeed and my broker is IB
I have a problem when sending limit orders based on any series price that is not the main series just doesnt work..
For example, a workspace has two data series:
Code example, Whenever the counter hit 60 it sends a limit order and moves it on every tick until the counter hit 120 and then all over again:
Code: Select all
Imports System
Imports System.Drawing
Imports System.Linq
Imports PowerLanguage
Imports PowerLanguage.Function
Imports PowerLanguage.Strategy
Imports ATCenterProxy.interop
Namespace PowerLanguage.Strategy
<IOGMode(IOGMode.Enabled)> <AllowSendOrdersAlways(True)> _
Public Class Ram_Temp
Inherits SignalObject
Public Sub New(ByVal _ctx As Object)
MyBase.New(_ctx)
End Sub
Private i as Integer
Private Buy_Lmt As IOrderPriced
Protected Overrides Sub CalcBar()
'run only at last bar
If Bars.LastBarOnChart Then
i = i+1
Output.WriteLine("Counter: " & i)
if i > 60 AndAlso i < 120 then
'Output.WriteLine(BarsOfData(2).Close(0) - 10)
Buy_Lmt.Send(BarsOfData(1).Close(0) - 10)
'Buy_Lmt.Send(BarsOfData(2).Close(0) - 10)
End If
If i > 120 then i = 0
End if
End Sub
Protected Overrides Sub Create()
Buy_Lmt = OrderCreator.Limit(new SOrderParameters(Contracts.Default, "Long Lmt", EOrderAction.Buy))
End Sub
Protected Overrides Sub StartCalc()
End Sub
End Class
End Namespace
Code: Select all
Buy_Lmt.Send(BarsOfData(1).Close(0) - 10)
'Buy_Lmt.Send(BarsOfData(2).Close(0) - 10)
Code: Select all
'Buy_Lmt.Send(BarsOfData(1).Close(0) - 10)
Buy_Lmt.Send(BarsOfData(2).Close(0) - 10)
Code: Select all
Output.WriteLine(BarsOfData(2).Close(0) - 10)
Buy_Lmt.Send(BarsOfData(1).Close(0) - 10)
'Buy_Lmt.Send(BarsOfData(2).Close(0) - 10)
Thx much!
Best,
R.