can't align! submit questions again.
can't align! submit questions again.
25 Mar 2016, 08:03
This Forum only supports IE, does not support chrom.I submit questions again.I am a green hand.
I see Ask Bid and Spread the chart shows.in this link /forum/whats-new/1531I added the two symbol, the result can't align.I can't find the reason.Please help me.
using System; using cAlgo.API; using cAlgo.API.Internals; using cAlgo.API.Indicators; namespace cAlgo.Indicators { [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC)] public class MultiSymbolMarketInfo : Indicator { private Symbol symbol1; private Symbol symbol2; private Symbol symbol3; private Symbol symbol4; private Symbol symbol5; [Parameter(DefaultValue = "EURGBP")] public string Symbol1 { get; set; } [Parameter(DefaultValue = "GBPUSD")] public string Symbol2 { get; set; } [Parameter(DefaultValue = "EURUSD")] public string Symbol3 { get; set; } [Parameter(DefaultValue = "EURJPY")] public string Symbol4 { get; set; } [Parameter(DefaultValue = "AUDJPY")] public string Symbol5 { get; set; } protected override void Initialize() { symbol1 = MarketData.GetSymbol(Symbol1); symbol2 = MarketData.GetSymbol(Symbol2); symbol3 = MarketData.GetSymbol(Symbol3); symbol4 = MarketData.GetSymbol(Symbol4); symbol5 = MarketData.GetSymbol(Symbol5); } public override void Calculate(int index) { if (!IsLastBar) return; var text = FormatSymbol(symbol1) + "\n" + FormatSymbol(symbol2) + "\n" + FormatSymbol(symbol3) + "\n" + FormatSymbol(symbol4) + "\n" + FormatSymbol(symbol5); ChartObjects.DrawText("symbol1", text, StaticPosition.TopLeft, Colors.Lime); } private string FormatSymbol(Symbol symbol) { var spread = Math.Round(symbol.Spread / symbol.PipSize, 1); return string.Format("{0}\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread); } } }
Replies
cyfer
25 Mar 2016, 21:08
Save yourself the headache and do this
using System; using cAlgo.API; using cAlgo.API.Internals; using cAlgo.API.Indicators; namespace cAlgo.Indicators { [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AutoRescale = true)] public class MultiSymbolMarketInfo : Indicator { private Symbol symbol1; private Symbol symbol2; private Symbol symbol3; private Symbol symbol4; private Symbol symbol5; private Symbol symbol6; private Symbol symbol7; [Parameter(DefaultValue = "EURGBP")] public string Symbol1 { get; set; } [Parameter(DefaultValue = "GBPUSD")] public string Symbol2 { get; set; } [Parameter(DefaultValue = "EURUSD")] public string Symbol3 { get; set; } [Parameter(DefaultValue = "EURJPY")] public string Symbol4 { get; set; } [Parameter(DefaultValue = "AUDJPY")] public string Symbol5 { get; set; } [Parameter(DefaultValue = "EURCAD")] public string Symbol6 { get; set; } [Parameter(DefaultValue = "GBPJPY")] public string Symbol7 { get; set; } protected override void Initialize() { symbol1 = MarketData.GetSymbol(Symbol1); symbol2 = MarketData.GetSymbol(Symbol2); symbol3 = MarketData.GetSymbol(Symbol3); symbol4 = MarketData.GetSymbol(Symbol4); symbol5 = MarketData.GetSymbol(Symbol5); symbol6 = MarketData.GetSymbol(Symbol6); symbol7 = MarketData.GetSymbol(Symbol7); } public override void Calculate(int index) { if (!IsLastBar) return; var text = FormatSymbol(symbol1) + "\n" + FormatSymbol(symbol2) + "\n" + FormatSymbol(symbol3) + "\n" + FormatSymbol(symbol4) + "\n" + FormatSymbol(symbol5) + "\n" + FormatSymbol(symbol6) + "\n" + FormatSymbol(symbol7); ChartObjects.RemoveObject(text); ChartObjects.DrawText("symbol1", text, StaticPosition.TopLeft, Colors.Lime); } private string FormatSymbol(Symbol symbol) { var spread = Math.Round(symbol.Spread / symbol.PipSize, 1); if (symbol.Code.Contains("JPY")) { return string.Format("{0}\t\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread); } else return string.Format("{0}\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread); } } }
*I have nothing to say about your browser issue , I'm using Opera browser
@cyfer
apexji
26 Mar 2016, 00:52
RE: Again would like to ask a question
cyfer said:Again would like to ask a question, the info list, if spread < 2 font color to yellow, then, how to write? I am a rookie.Master, can you do me a favor?
Save yourself the headache and do this
using System; using cAlgo.API; using cAlgo.API.Internals; using cAlgo.API.Indicators; namespace cAlgo.Indicators { [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AutoRescale = true)] public class MultiSymbolMarketInfo : Indicator { private Symbol symbol1; private Symbol symbol2; private Symbol symbol3; private Symbol symbol4; private Symbol symbol5; private Symbol symbol6; private Symbol symbol7; [Parameter(DefaultValue = "EURGBP")] public string Symbol1 { get; set; } [Parameter(DefaultValue = "GBPUSD")] public string Symbol2 { get; set; } [Parameter(DefaultValue = "EURUSD")] public string Symbol3 { get; set; } [Parameter(DefaultValue = "EURJPY")] public string Symbol4 { get; set; } [Parameter(DefaultValue = "AUDJPY")] public string Symbol5 { get; set; } [Parameter(DefaultValue = "EURCAD")] public string Symbol6 { get; set; } [Parameter(DefaultValue = "GBPJPY")] public string Symbol7 { get; set; } protected override void Initialize() { symbol1 = MarketData.GetSymbol(Symbol1); symbol2 = MarketData.GetSymbol(Symbol2); symbol3 = MarketData.GetSymbol(Symbol3); symbol4 = MarketData.GetSymbol(Symbol4); symbol5 = MarketData.GetSymbol(Symbol5); symbol6 = MarketData.GetSymbol(Symbol6); symbol7 = MarketData.GetSymbol(Symbol7); } public override void Calculate(int index) { if (!IsLastBar) return; var text = FormatSymbol(symbol1) + "\n" + FormatSymbol(symbol2) + "\n" + FormatSymbol(symbol3) + "\n" + FormatSymbol(symbol4) + "\n" + FormatSymbol(symbol5) + "\n" + FormatSymbol(symbol6) + "\n" + FormatSymbol(symbol7); ChartObjects.RemoveObject(text); ChartObjects.DrawText("symbol1", text, StaticPosition.TopLeft, Colors.Lime); } private string FormatSymbol(Symbol symbol) { var spread = Math.Round(symbol.Spread / symbol.PipSize, 1); if (symbol.Code.Contains("JPY")) { return string.Format("{0}\t\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread); } else return string.Format("{0}\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread); } } }*I have nothing to say about your browser issue , I'm using Opera browser
@apexji
croucrou
27 Mar 2016, 01:55
You can do this like this:
using System; using cAlgo.API; using cAlgo.API.Internals; using cAlgo.API.Indicators; namespace cAlgo.Indicators { [Indicator(IsOverlay = true)] public class MultiSymbolMarketInfo : Indicator { private Symbol symbol1, symbol2, symbol3, symbol4, symbol5, symbol6, symbol7; [Parameter(DefaultValue = "EURGBP")] public string Symbol1 { get; set; } [Parameter(DefaultValue = "GBPUSD")] public string Symbol2 { get; set; } [Parameter(DefaultValue = "EURUSD")] public string Symbol3 { get; set; } [Parameter(DefaultValue = "EURJPY")] public string Symbol4 { get; set; } [Parameter(DefaultValue = "AUDJPY")] public string Symbol5 { get; set; } [Parameter(DefaultValue = "EURCAD")] public string Symbol6 { get; set; } [Parameter(DefaultValue = "GBPJPY")] public string Symbol7 { get; set; } private double spread(Symbol symbol) { return Math.Round(symbol.Spread / symbol.PipSize, 1); } private string format(Symbol symbol) { if (symbol.Code.Contains("JPY")) return string.Format("{0}\t\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread(symbol)); else return string.Format("{0}\t Ask: {1}\t Bid: {2}\t Spread: {3}", symbol.Code, symbol.Ask, symbol.Bid, spread(symbol)); } private string text(Symbol symbol) { return format(symbol); } private Colors color(Symbol symbol) { if (spread(symbol) >= 2) return Colors.Lime; else return Colors.Yellow; } private void printText(string newLine, Symbol symbol) { ChartObjects.RemoveObject(text(Symbol)); ChartObjects.DrawText(symbol.Code, newLine + text(symbol), StaticPosition.TopLeft, color(symbol)); } protected override void Initialize() { symbol1 = MarketData.GetSymbol(Symbol1); symbol2 = MarketData.GetSymbol(Symbol2); symbol3 = MarketData.GetSymbol(Symbol3); symbol4 = MarketData.GetSymbol(Symbol4); symbol5 = MarketData.GetSymbol(Symbol5); symbol6 = MarketData.GetSymbol(Symbol6); symbol7 = MarketData.GetSymbol(Symbol7); } public override void Calculate(int index) { if (!IsLastBar) return; printText("", symbol1); printText("\n", symbol2); printText("\n\n", symbol3); printText("\n\n\n", symbol4); printText("\n\n\n\n", symbol5); printText("\n\n\n\n\n", symbol6); printText("\n\n\n\n\n\n", symbol7); } } }
@croucrou
croucrou
25 Mar 2016, 18:29
The names of the added symbol names are just built of smaller letters and the words are more narrow. You could add one more "/t" after these symbol's codes as they need one more "Tab" to get to the same column. You might want to check that in any text editor.
I am using Chrome and have no issues.
@croucrou