Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


SupereeDuperee last won the day on February 9

SupereeDuperee had the most liked content!

About SupereeDuperee

  • Rank
    Advanced Member
  1. 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:
  2. 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}}
  3. 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.
  4. 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.
  5. 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)?
  6. 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.
  7. 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}
  8. 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)
  9. Historical Data out of bound error

    @SirNewton Just curious was the Time Range (CandleStick) for the data, DAILY / Hourly ?
  10. 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
  11. @Physicsman Thanks for the clarification. In MOST cases I am getting StatusReason=75 which translates into Where do I "check details" ?
  12. 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.
  13. 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+.
  14. 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.
  15. Thanks for the detailed information. I will send CLOSE request with PriceTolerance value "2" so that most of the time close order would go through.