Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


SupereeDuperee last won the day on February 9 2021

SupereeDuperee had the most liked content!

About SupereeDuperee

  • Rank
    Advanced Member

Recent Profile Visitors

97 profile views
  1. Best way to know if Market is closed

    Our lives would have been so easier if we had an API function to check if the Market is Open or not. in C# public bool IsMarketOpen(int MarketId) { //Do bunch of stuff return true/false; } Will this this DREAM ever come true!
  2. 520 Origin Error

    From my C# WinForm app, I am getting "(520) Origin Error" a lot this morning. Is server overloaded or has something changed? I get the error when I call to AUTHENTICATE. 2 out of 10 it would go through fine without error. After Authenticating I VALIDATE the session, and I get the same error again. HttpWebResponse Error in https://ciapi.cityindex.com/TradingAPI/session/ : The remote server returned an error: (520) Origin Error. I also tried from Postman, randomly I get the same error, may be 1 in 10. Any idea? Postman Error:
  3. Figured it out the full POST URL = https://ciapi.cityindex.com/TradingAPI/order/activeorders?UserName={{UserName}}&Session={{Session}} https://ciapi.cityindex.com/TradingAPI/order/activeorders?UserName={{UserName}}&Session={{Session}}
  4. Yes, I was not submitting as POST - so that was the User Error. But no success yet either - following your example. How are you passing the SessionId value to the POST request? I added session to the BODY, I get Session is not valid. However Session Id is valid - I checked "Session Validation"" and it was valid. I tried without the SessionId in the body, just like your Attached Pic. I get the same error - Session Not Valid.
  5. I have 3 open trades, with STOP / LIMIT Orders on each trade. I also have 11 PENDING Orders (to open trade at TRIGGER price in future). If I call "ActiveStopLimitOrders" API, I get total 17 results - (3x2+11). If I call "ListActiveOrders" I get NONE. What's the difference between these two API Calls? In which situation I would see some results for the "ListActiveOrders" call? *** I am a US Forex Trader.
  6. Yes, I am a US Forex.com user. I believe the DEMO Account does not MIMIC the US Forex.Com rules and thus my TESTing passed in DEMO trading but failing in PROD/Real-Life. At least ,now I know what's causing the problem. Thanks. I think I have to send a "newstoplimitorder' without any STOP/LIMIT children. Once the order gets fulfilled I can then attach stop/limit order. I have to MONITOR periodically if the ORDER is fulfilled or not. RIGHT? For a US Forex Trader , like me, is it possible:- 1. Send a market BUY order for 10000 Units of USD/CAD rate = 1.0050, with stop=1.0000, limit 1.0090 2. Send 10000 Units of USD/CAD NewStopLimitOrder BUY for 1.0040 3. At some point, NewStopLimitOrder for 1.0040 BUY executed. Can I attach Stop=1.0010 and Limit=1.0070 for this TRADE (this stop limit is different than EXISTING trade's Stop/Linit rates)?
  7. NEVERMIND on the weird "Â". I have an ENUM class to convert Error Code to Explanation, I copied the texts from the web page and probably picked up different encoding from there. I forgot that JSON Response doesn't provide any error explanations.
  8. The API URL = https://ciapi.cityindex.com/TradingAPI/order/newstoplimitorder RequestJSON {"OrderId":0,"MarketId":401484338,"Currency":null,"AutoRollover":false,"Direction":"Buy","PositionMethodId":1,"Quantity":1000.0,"BidPrice":132.914,"OfferPrice":132.93,"AuditId":"4910693","TradingAccountId":XXYYZZ,"IfDone":{"Stop":{"Guaranteed":false,"TriggerPrice":132.629737794,"ExpiryDateTimeUTC":null,"Applicability":"GTC","ParentOrderId":null,"TrailingDistance":null,"Associated":false,"OrderId":0,"Reference":null,"OrderReference":null,"AutoRollover":false,"MarketId":401484338,"Direction":"Sell","Quantity":1000.0,"OriginalQuantity":0.0,"Price":null,"OriginalPrice":null,"TradingAccountId":401305136,"CurrencyId":0,"StatusId":0,"TypeId":0,"IfDone":null,"OcoOrder":null,"LastChangedDateTimeUTC":null,"AssociatedOrders":null},"Limit":null},"OcoOrder":null,"Applicability":null,"ExpiryDateTimeUTC":null,"Guaranteed":false,"TriggerPrice":132.749737794,"Reference":null,"AllocationProfileId":0,"OrderReference":null,"Source":null} ResponseJSON {"Status":4,"StatusReason":15,"OrderId":0,"Orders":[],"Quote":null,"Actions":[],"ErrorMessage":null}
  9. From my own/personal windows .net app I am sending Limit Order(s) and getting errors :- 2021-05-16 19:02:34:136 : Order Placed for EUR/JPY Buy Amount=1000, Rate=132.749737794 Status=4 Reason=15 2021-05-16 19:02:34:136 : Order FAILED FOR EUR/JPY : InstructionStatus=4=Error InstructionReason=15=Trigger level calculation type does not exist. At that 07:02nd Minute's OHLC for EUR/JPY = 132.934/.945/.927/927. My app was sending a BUY-LIMIT order @132.749xxx. So the price should not be a problem. Can some one please shed some light why the order failed? AND what that Error Message means? Thank you. *** What kind of encoding causing those weird "Â" to appear? (Just curious, not an issue)
  10. Historical Data out of bound error

    @SirNewton Just curious was the Time Range (CandleStick) for the data, DAILY / Hourly ?
  11. Best way to know if Market is closed

    I submitted a GET for GBP/USD, response is = { "MarketInformation": { "MarketId": 401166448, "Name": "GBP/USD", "ExchangeId": 400000032, "ExchangeName": "FX (IFX) Retail Exchange", "MarginFactor": 2.0, "MinMarginFactor": null, "MaxMarginFactor": null, "ClientMarginFactor": 2.0, "MarginFactorUnits": 26, "MinDistance": 0.00001, "MinDistanceUnits": 27, "WebMinSize": 1000.0, "MaxSize": 50000000.0, "MarketSizesCurrencyCode": "USD", "MaxLongSize": 5000001.0, "MaxShortSize": 5000001.0, "Market24H": true, "PriceDecimalPlaces": 5, "DefaultQuoteLength": 5, "TradeOnWeb": true, "LimitUp": false, "LimitDown": false, "LongPositionOnly": false, "CloseOnly": false, "MarketEod": [], "PriceTolerance": 2.0, "ConvertPriceToPipsMultiplier": 10000, "MarketSettingsTypeId": 2, "MarketSettingsType": "CFD", "MobileShortName": "GBP/USD", "CentralClearingType": "No", "CentralClearingTypeDescription": "None", "MarketCurrencyId": 11, "PhoneMinSize": 5000.0, "DailyFinancingAppliedAtUtc": "/Date(1614117600000)/", "NextMarketEodTimeUtc": "/Date(1614117600000)/", "TradingStartTimeUtc": null, "TradingEndTimeUtc": null, "MarketPricingTimes": [ { "DayOfWeek": 5, "StartTimeUtc": null, "EndTimeUtc": { "UtcDateTime": "/Date(1614117600000)/", "OffsetMinutes": -300 } }, { "DayOfWeek": 0, "StartTimeUtc": { "UtcDateTime": "/Date(1614117600000)/", "OffsetMinutes": -300 }, "EndTimeUtc": null } ], "MarketBreakTimes": [], "MarketSpreads": [ { "SpreadTimeUtc": null, "Spread": 0.0001, "SpreadUnits": 27 } ], "GuaranteedOrderPremium": 10.0, "GuaranteedOrderPremiumUnits": 1, "GuaranteedOrderMinDistance": 50.0, "GuaranteedOrderMinDistanceUnits": 27, "PriceToleranceUnits": 0.0001, "MarketTimeZoneOffsetMinutes": -300, "QuantityConversionFactor": 1.0, "PointFactorDivisor": 100, "BetPer": 1.0, "MarketUnderlyingTypeId": 4, "MarketUnderlyingType": "FX", "AllowGuaranteedOrders": false, "OrdersAwareMargining": false, "OrdersAwareMarginingMinimum": null, "CommissionChargeMinimum": null, "CommissionRate": null, "CommissionRateUnits": null, "ExpiryUtc": null, "FutureRolloverUTC": null, "AllowRollover": false, "ExpiryBasisId": 1, "ExpiryBasisText": "", "StepMargin": { "EligibleForStepMargin": true, "StepMarginConfigured": true, "InheritedFromParentAccountOperator": true, "Bands": [ { "LowerBound": 0.0, "MarginFactor": 5.0 }, { "LowerBound": 7200000.0, "MarginFactor": 5.0 }, { "LowerBound": 14000000.0, "MarginFactor": 5.0 }, { "LowerBound": 21000000.0, "MarginFactor": 5.0 }, { "LowerBound": 54000000.0, "MarginFactor": 20.0 } ] }, "OptionTypeId": null, "OptionType": null, "StrikePrice": null, "MarketTypeId": 2, "MarketType": "Ordinary Market", "Weighting": 628, "FxFinancing": { "CaptureDateTime": "/Date(1614204000000)/", "PreviousCaptureDateTime": "/Date(1614117600000)/", "LongPoints": 0.15, "ShortPoints": -0.03, "LongCharge": -1.23, "PreviousLongCharge": -0.41, "ShortCharge": -0.99, "PreviousShortCharge": -0.33, "Quantity": 10000.0, "ChargeCurrencyId": 11, "DaysToRoll": 3, "PreviousDaysToRoll": 1 }, "UnderlyingRicCode": "GBPUSD", "NewsUnderlyingOverrideType": "NamedItem", "NewsUnderlyingOverrideCode": "GBP/", "TrailingStopConversionFactor": 0.0001, "IsKnockout": false, "Knockout": null } } Which value gives me the Weekly Market Close and Open day/times? Thank you. @Physicsman
  12. @Physicsman Thanks for the clarification. In MOST cases I am getting StatusReason=75 which translates into Where do I "check details" ?
  13. Hi @Physicsman you mentioned Also in Documentation for Status Resons #7 says about logs (PDF Page 79) InstructionStatusReason Code Description 1 OK. 2 Instance of type InstructionDTO must be provided. 3 Risk Process identifier does not exist. 4 Internal user identifier must be provided. 5 Session identifier must be provided. 6 Instruction source identifier does not exist. 7 Instruction processing has resulted in an Error. Please check log for details. Where is this "Log"? How can I access/view this log? Thank you.
  14. Streaming data seems off around closing

    @SirNewton Volatility rises and Liquidity lowers when the Major Market Closes, like near 5PM Eastern Time everyday. This causes the Spread to go HIGH for certain pairs. I have seen on GBP/NZD pairs spread go as high as 12, sometime 18 on regular day 5PM EST+ as well as on Friday 5PM EST+.
  15. An ApiIfDoneDTO JSON text is given below. The Child Items "Stop" and "Limit" are of type "ApiStopLimitOrderDTO" { "IfDone":[ { "Stop":{ "OrderId":778252070, "StatusReason":1, "Status":2, "OrderTypeId":2, "Price":0, "Quantity":1000, "TriggerPrice":1.36261, "CommissionCharge":0, "IfDone":[ ], "GuaranteedPremium":0, "OCO":null, "AssociatedOrders":{ "Stop":null, "Limit":null }, "Associated":false }, "Limit":{ "OrderId":778252069, "StatusReason":1, "Status":2, "OrderTypeId":3, "Price":0, "Quantity":1000, "TriggerPrice":1.36661, "CommissionCharge":0, "IfDone":[ ], "GuaranteedPremium":0, "OCO":null, "AssociatedOrders":{ "Stop":null, "Limit":null }, "Associated":false } } ] } My ApiIfDoneDTO class looks like :- public class ApiIfDoneDTO { #region Public Properties & Private Members /// <summary> /// The price at which the stop order will be filled. /// </summary> public ApiStopLimitOrderDTO Stop { get; set; } /// <summary> /// The price at which the limit order will be filled. /// </summary> public ApiStopLimitOrderDTO Limit { get; set; } #endregion #region Constructors private void Initilize() { } public ApiIfDoneDTO() { Initilize(); } #endregion } Problem is the above JSON text is providing an ARRAY but the ApiIfDoneDTO class has just TWO Properties - Stop and Limit. I cannot deserialize JSON text into ApiIfDoneDTO object withouth manually hacking the JSON Text. Is there any C# Developer OR JSON Expert who can show me what would be a Class Object that will Deserialize into from the Above JSON text (using NewtonSoft.JsonConverter) ? I will appreciate your help.