public MapViewLayoutParams(Context context, IAttributeSet attrs) : base(context, attrs) { this.X = attrs.GetAttributeIntValue("http://schemas.mapquest.com/apk/res/mapquest", "x", int.MaxValue); this.Y = attrs.GetAttributeIntValue("http://schemas.mapquest.com/apk/res/mapquest", "x", int.MaxValue); String geoPoint = attrs.GetAttributeValue("http://schemas.mapquest.com/apk/res/mapquest", "geoPoint"); if ((geoPoint.Length > 0)) { String[] arr = geoPoint.Split(new[] { "," }, StringSplitOptions.None); if (arr.Length > 1) { try { double latitude = Double.Parse(arr[0].Trim()); double longitude = Double.Parse(arr[1].Trim()); this.Point = new GeoPoint(latitude, longitude); this.Mode = 0; } catch (NumberFormatException nfe) { Log.Error("mq.android.maps.mapview", "Invalid value for geoPoint attribute : " + geoPoint); } } } }
public static Quaternion Parse(string text) { string[] vals = text.Replace("Quaternion", "").Trim(' ', '(', '[', '<', ')', ']', '>').Split(','); if (vals.Length != 4) { throw new FormatException(string.Format("Cannot parse the text '{0}' because it does not have 4 parts separated by commas in the form (x,y,z,w) with optional parenthesis.", text)); } else { try { Quaternion returnvalue; returnvalue.X = Scalar.Parse(vals[0].Trim()); returnvalue.Y = Scalar.Parse(vals[1].Trim()); returnvalue.Z = Scalar.Parse(vals[2].Trim()); returnvalue.W = Scalar.Parse(vals[3].Trim()); return(returnvalue); } catch (Exception ex) { throw new FormatException("The parts of the vectors must be decimal numbers", ex); } } }
public static Clamped Parse(string s) { if (s == null) { throw new ArgumentNullException("s"); } #if !CompactFramework && !WindowsCE && !PocketPC && !XBOX360 string[] vals = s.Split(new char[] { '<', '(', ')' }, StringSplitOptions.RemoveEmptyEntries); #else string[] temp = s.Split(new char[] { '<', '(', ')' }); int index2 = 0; for (int index1 = 0; index1 < temp.Length; ++index1) { if (temp[index1].Length > 0) { temp[index2++] = temp[index1]; } } string[] vals = new string[index2]; Array.Copy(temp, vals, vals.Length); #endif if (vals.Length != 3) { throw new FormatException(); } return(new Clamped( Scalar.Parse(vals[1]), Scalar.Parse(vals[0]), Scalar.Parse(vals[2]))); }
//TB关键字转换:每当Strategy调用Update时,便调用以下函数 void TBKeyWordUpdate() { BarInterval = this.Interval; MarketPosition = this.PositionNet == 0 ? 0 : (this.PositionNet > 0 ? 1 : -1); if (PositionNet > 0) { EntryPrice = this.EntryPriceLong; BarsSinceLastEntry = this.BarsSinceLastEntryLong; AvgEntryPrice = this.AvgEntryPriceLong; BarsSinceEntry = this.BarsSinceEntryLong; } else if (PositionNet < 0) { EntryPrice = this.EntryPriceShort; BarsSinceLastEntry = this.BarsSinceLastEntryShort; AvgEntryPrice = this.AvgEntryPriceShort; BarsSinceEntry = this.BarsSinceEntryShort; } else { BarsSinceEntry = 0; } Date[0] = Math.Truncate(this.NumDateTimes[0]); Time[0] = this.NumDateTimes[0] - Date[0]; CurrentTime = Numeric.Parse(DateTime.Now.ToString("0.HHmmss")); if (!string.IsNullOrEmpty(this.Tick.InstrumentID)) { BarStatus = 2; } else { BarStatus = (CurrentBarIndex == 0 ? 0 : 1); } }
/// <summary> /// 从CSV文件中获得Bar数据集合 /// </summary> /// <param name="pFilePath"></param> /// <returns></returns> public static List <Bar> GetBarsFromCSV(string pFilePath) { Bar bar; string[] strs; List <Bar> listBars = new List <Bar>(); FileStream fs = new FileStream(pFilePath, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.Default); string line = sr.ReadLine(); while (line != null) { strs = line.Split(','); bar = new Bar { UpdateDateTime = DateTime.Parse(strs[0]), Open = Numeric.Parse(strs[1]), High = Numeric.Parse(strs[2]), Low = Numeric.Parse(strs[3]), Close = Numeric.Parse(strs[4]), Volume = Numeric.Parse(strs[5]), OpenInt = Numeric.Parse(strs[6]) }; listBars.Add(bar); line = sr.ReadLine(); } sr.Close(); fs.Close(); return(listBars); }
static ValueType[] StringArrToValueArr(String[] data) { ValueType[] res = new ValueType[data.Length]; for (int i = 0; i < data.Length; i++) { res[i] = ValueType.Parse(data[i]); } return(res); }
/// <summary> /// Delegate used to submit the element </summary> private bool CanSubmit() { if (Description.Length <= 10) { this.ErrorString = "Description must be longer than 10 characters."; return(false); } if (this.Name.Contains(@"\") || this.Name.Contains(@"/") || this.Name.Contains(@"*")) { this.ErrorString = @"The name of the package cannot contain /,\, or *."; return(false); } if (this.Name.Length < 3) { this.ErrorString = "Name must be at least 3 characters."; return(false); } if (this.MajorVersion.Length <= 0) { this.ErrorString = "You must provide a Major version as a non-negative integer."; return(false); } if (this.MinorVersion.Length <= 0) { this.ErrorString = "You must provide a Minor version as a non-negative integer."; return(false); } if (this.BuildVersion.Length <= 0) { this.ErrorString = "You must provide a Build version as a non-negative integer."; return(false); } if (Double.Parse(this.BuildVersion) + Double.Parse(this.MinorVersion) + Double.Parse(this.MajorVersion) <= 0) { this.ErrorString = "At least one of your version values must be greater than 0."; return(false); } if (this.UploadState != PackageUploadHandle.State.Error) { this.ErrorString = ""; } if (this.Uploading) { return(false); } return(true); }
/// <summary> /// Creates and initializes a NoteModel from its Xml representation. /// </summary> /// <param name="note"></param> /// <returns></returns> public static NoteModel LoadNoteFromXml(XmlNode note) { XmlAttribute textAttrib = note.Attributes[0]; XmlAttribute xAttrib = note.Attributes[1]; XmlAttribute yAttrib = note.Attributes[2]; string text = textAttrib.Value; double x = Double.Parse(xAttrib.Value, CultureInfo.InvariantCulture); double y = Double.Parse(yAttrib.Value, CultureInfo.InvariantCulture); // TODO(Ben): Shouldn't we be reading in the Guid from file instead of generating a new one here? return(new NoteModel(x, y, text, Guid.NewGuid())); }
/// <summary> /// 当有新的Bar加入时,更新Bars中的序列:Closes /// </summary> /// <param name="index"></param> /// <param name="bar"></param> protected override void InsertItem(int index, Bar bar) { //序列更新 this.NumDateTimes.Add(Numeric.Parse(bar.UpdateDateTime.ToString("yyyyMMdd.HHmmss"))); this.Opens.Add(bar.Open); this.Highs.Add(bar.High); this.Lows.Add(bar.Low); this.Closes.Add(bar.Close); this.Volumes.Add(bar.Volume); this.OpenInts.Add(bar.OpenInt); //添加Bar base.InsertItem(index, bar); //通知增加Bar this._onChange?.Invoke(1, bar, null); }
private void SetVector4Value(BulletWriter writer, XmlNode valueNode, int offset) { int i = 0; foreach (string value in valueNode.InnerText.Split(' ')) { if (!string.IsNullOrWhiteSpace(value)) { writer.Write(Scalar.Parse(value, CultureInfo.InvariantCulture), offset + i * sizeof(Scalar)); i++; if (i == 4) { break; } } } }
/// <summary> /// Vector from a string. /// </summary> static public Vector3d FromString(string s) { Vector3d v = new Vector3d(); try { string[] separators = new string[] { "," }; string[] result = s.Split(separators, StringSplitOptions.None); v.x = REAL.Parse(result[0]); v.y = REAL.Parse(result[1]); v.z = REAL.Parse(result[2]); } catch { } return(v); }
public TokenNumber(TokenType p_Type, int p_line, int p_column, String p_value) : base(p_Type, p_line, p_column) { try { integerValue = Integer.Parse(p_value); type = integerValue.GetType(); } catch (FormatException) { try { floatValue = Float.Parse(p_value); type = floatValue.GetType(); } catch (FormatException) { Console.WriteLine("{0}: Bad Format", p_value); } catch (OverflowException) { Console.WriteLine("{0}: Overflow", p_value); } } catch (OverflowException) { Console.WriteLine("{0}: Overflow", p_value); } }
public static Vector3D Parse(string s) { if (s == null) { throw new ArgumentNullException("s"); } string[] vals = ParseHelper.SplitStringVector(s); if (vals.Length != Count) { ThrowHelper.ThrowVectorFormatException(s, Count, FormatString); } Vector3D value; value.X = Scalar.Parse(vals[0]); value.Y = Scalar.Parse(vals[1]); value.Z = Scalar.Parse(vals[2]); return(value); }
public Status LoadSimplesFromFile(String fileName) { //Free string fileContent = File.ReadAllText(fileName); if (fileContent == null) { Console.WriteLine("未能成功打开样例文件"); return(-1); } string[] integerStrings = fileContent.Split (new char[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); sampleNum = int.Parse(integerStrings[0]); int inputNodeNum = int.Parse(integerStrings[1]); int outputNodeNum = int.Parse(integerStrings[2]); input = new ElemType[sampleNum, inputNodeNum]; output = new ElemType[sampleNum, outputNodeNum]; if (input == null || output == null) { Console.WriteLine("创建input output数组失败"); return(-1); } int numIndex = 3; for (int i = 0; i < sampleNum; i++) { for (int j = 0; j < inputNodeNum; j++) { input[i, j] = ElemType.Parse(integerStrings[numIndex]); numIndex++; } for (int k = 0; k < outputNodeNum; k++) { output[i, k] = ElemType.Parse(integerStrings[numIndex]); numIndex++; } } return(0); }
/// <summary> /// 获得Tick数据集合 /// </summary> /// <param name="pFilePath"></param> /// <param name="pDirectoryName"></param> /// <returns></returns> public static List <Tick> GetTicksFromCSV(string pFilePath, string pDirectoryName) { Tick tick; string[] strs; List <Tick> listTicks = new List <Tick>(); FileStream fs = new FileStream(pFilePath, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.Default); string line = sr.ReadLine(); while (line != null) { strs = line.Split(','); DateTime dt = DateTime.ParseExact(pDirectoryName + " " + int.Parse(strs[19]).ToString("D6"), "yyyyMMdd HHmmss", null); if (dt.Hour < 3 && dt.Hour >= 0) { dt = dt.AddDays(1); } tick = new Tick { InstrumentID = strs[0], LastPrice = Numeric.Parse(strs[1]), Volume = int.Parse(strs[2]), BidPrice = Numeric.Parse(strs[6]), BidVolume = int.Parse(strs[7]), AskPrice = Numeric.Parse(strs[4]), AskVolume = int.Parse(strs[5]), UpdateTime = dt.ToString("yyyyMMdd HH:mm:ss"), UpdateMillisec = 0, OpenInt = Numeric.Parse(strs[11]), }; //过滤无用数据 if (tick.AskPrice * tick.BidPrice * tick.Volume * tick.AskVolume * tick.BidVolume > 0) { listTicks.Add(tick); } line = sr.ReadLine(); } sr.Close(); fs.Close(); return(listTicks); }
public static void Parse <T>(string s, ref T valueType, string leftParenth, string rightParenth, char divider) where T : IAdvanceValueType { if (s == null) { throw new ArgumentNullException("s"); } string[] parts = SpritString(s, divider, new string[] { leftParenth, rightParenth }); if (parts.Length != valueType.Count) { throw new FormatException( string.Format("Cannot parse the text '{0}' because it does not have {1} parts.", s, valueType.Count)); } Scalar[] result = new Scalar[valueType.Count]; for (int index = 0; index < valueType.Count; ++index) { result[index] = Scalar.Parse(parts[index]); } valueType.CopyFrom(result, 0); }
public static ALVector2D Parse(string text) { string[] vals = text.Trim(' ', '(', '[', '<', ')', ']', '>').Split(new char[] { ',' }); if (vals.Length != 2) { throw new FormatException(string.Format("Cannot parse the text '{0}' because it does not have 2 parts separated by commas in the form (x,y) with optional parenthesis.", text)); } else { try { ALVector2D returnvalue; returnvalue.Angular = Scalar.Parse(vals[0]); returnvalue.Linear = Vector2D.Parse(vals[1]); return(returnvalue); } catch (Exception ex) { throw new FormatException("The parts of the vectors must be decimal numbers", ex); } } }
private void SetFloatValue(BulletWriter writer, XmlNode valueNode, int offset) { writer.Write(Scalar.Parse(valueNode.InnerText, CultureInfo.InvariantCulture), offset); }
public static SoftBody CreateFromTetGenData(SoftBodyWorldInfo worldInfo, string ele, string face, string node, bool faceLinks, bool tetraLinks, bool facesFromTetras) { CultureInfo culture = CultureInfo.InvariantCulture; char[] separator = new[] { ' ' }; Vector3[] pos; using (var nodeReader = new StringReader(node)) { string[] nodeHeader = nodeReader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries); int numNodes = int.Parse(nodeHeader[0]); //int numDims = int.Parse(nodeHeader[1]); //int numAttrs = int.Parse(nodeHeader[2]); //bool hasBounds = !nodeHeader[3].Equals("0"); pos = new Vector3[numNodes]; for (int n = 0; n < numNodes; n++) { string[] nodeLine = nodeReader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries); pos[int.Parse(nodeLine[0])] = new Vector3( Scalar.Parse(nodeLine[1], culture), Scalar.Parse(nodeLine[2], culture), Scalar.Parse(nodeLine[3], culture)); } } var psb = new SoftBody(worldInfo, pos.Length, pos, null); /* * if (!string.IsNullOrEmpty(face)) * { * throw new NotImplementedException(); * } */ if (!string.IsNullOrEmpty(ele)) { using (var eleReader = new StringReader(ele)) { string[] eleHeader = eleReader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries); int numTetras = int.Parse(eleHeader[0]); //int numCorners = int.Parse(eleHeader[1]); //int numAttrs = int.Parse(eleHeader[2]); for (int n = 0; n < numTetras; n++) { string[] eleLine = eleReader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries); //int index = int.Parse(eleLine[0], culture); int ni0 = int.Parse(eleLine[1], culture); int ni1 = int.Parse(eleLine[2], culture); int ni2 = int.Parse(eleLine[3], culture); int ni3 = int.Parse(eleLine[4], culture); psb.AppendTetra(ni0, ni1, ni2, ni3); if (tetraLinks) { psb.AppendLink(ni0, ni1, null, true); psb.AppendLink(ni1, ni2, null, true); psb.AppendLink(ni2, ni0, null, true); psb.AppendLink(ni0, ni3, null, true); psb.AppendLink(ni1, ni3, null, true); psb.AppendLink(ni2, ni3, null, true); } } } } //Console.WriteLine("Nodes: {0}", psb.Nodes.Count); //Console.WriteLine("Links: {0}", psb.Links.Count); //Console.WriteLine("Faces: {0}", psb.Faces.Count); //Console.WriteLine("Tetras: {0}", psb.Tetras.Count); return(psb); }
private bool CheckPackageValidity() { if (Name.Contains(@"\") || Name.Contains(@"/") || Name.Contains(@"*")) { ErrorString = Resources.PackageNameCannotContainTheseCharacters; return(false); } if (Name.Length < 3) { ErrorString = Resources.NameNeedMoreCharacters; return(false); } if (Description.Length <= 10) { ErrorString = Resources.DescriptionNeedMoreCharacters; return(false); } if (MajorVersion.Length <= 0) { ErrorString = Resources.MajorVersionNonNegative; return(false); } if (MinorVersion.Length <= 0) { ErrorString = Resources.MinorVersionNonNegative; return(false); } if (BuildVersion.Length <= 0) { ErrorString = Resources.BuildVersionNonNegative; return(false); } if (Double.Parse(BuildVersion) + Double.Parse(MinorVersion) + Double.Parse(MajorVersion) <= 0) { ErrorString = Resources.VersionValueGreaterThan0; return(false); } if (!PackageContents.Any()) { ErrorString = Resources.PackageNeedAtLeastOneFile; return(false); } if (UploadState != PackageUploadHandle.State.Error) { ErrorString = ""; } if (Uploading) { return(false); } return(true); }
private bool P_Step() { bool r = P_Position < _input.Length; if (r) { char c = _input[P_Position]; int TableStackUBound = P_TableStack.Count - 1; P_TableLevel CurrentTable = null; bool EndingBlock = false; if (P_TableStack.Count > 0) { CurrentTable = P_TableStack[TableStackUBound]; } // To know when to end a stream block #region BlockEnder if (c == '|') { P_FailSafeEndCharCount++; if (!P_CharEscapedInString) { P_EndCharCount++; } if (P_EndCharCount == 2 | P_FailSafeEndCharCount == 2) { EndingBlock = true; } } else { if (P_EndCharCount == 1) { P_ThrowError(1); } P_FailSafeEndCharCount = 0; P_EndCharCount = 0; } #endregion if (P_ErrorCode == 0) // If no error then... { bool CharIsHandled = false; bool String_IsFirstBracket = false; #region Value Type Determiner if (P_ValueParser_ValueType == -1) { switch (c) { case 'T': case 'F': P_ValueParser_ValueType = 1; // Boolean CharIsHandled = true; break; case 'N': P_ValueParser_ValueType = 0; // null CharIsHandled = true; break; case '\"': P_ValueParser_ValueType = 4; // String String_IsFirstBracket = true; P_ValueParser_StringMode = true; CharIsHandled = true; break; case '[': P_TableLevel NewTableLevel = new P_TableLevel(); NewTableLevel.Table = new TableValue(); P_TableStack.Add(NewTableLevel); CharIsHandled = true; break; default: if (P_IsCharNumber(c)) { P_ValueParser_ValueType = 2; // Int CharIsHandled = true; } break; } } #endregion #region Value Extractor // Parse the value. if (P_ValueParser_ValueType >= 0) { switch (P_ValueParser_ValueType) { case 0: // null case 1: // Boolean if (P_ValueParser_ValueRaw.Length == 0) { P_ValueParser_ValueRaw.Append(c); } else { IAbstractValue o = null; switch (P_ValueParser_ValueRaw[0]) { case 'N': o = null; break; default: o = new BooleanValue(P_ValueParser_ValueRaw[0] == 'T'); break; } P_ValueParser_OutputValue(o); } CharIsHandled = true; break; case 2: // Int case 3: // Float if (P_IsCharNumber(c)) { P_ValueParser_ValueRaw.Append(c); } else if (c == '.') { if (P_ValueParser_ValueType == 2) { P_ValueParser_ValueType = 3; P_ValueParser_ValueRaw.Append(c); } else { P_ThrowError(1); // There should not be two decimals in the same number. } } else if (P_ValueParser_ValueType == 2) { P_ValueParser_OutputValue(new IntValue(int.Parse(P_ValueParser_ValueRaw.ToString()))); } else if (P_ValueParser_ValueType == 3) { P_ValueParser_OutputValue(new FloatValue(JsEncoder_Type_Float.Parse(P_ValueParser_ValueRaw.ToString()))); } CharIsHandled = true; break; case 4: // String if (P_ValueParser_StringMode) { bool String_RecordChar = true; // False to avoid recording current character into a string. if (!P_CharEscapedInString) { if (c == '\\') { String_RecordChar = false; P_CharEscapedInString = true; } else if (c == '\"') { String_RecordChar = false; if (!String_IsFirstBracket) { P_ValueParser_StringMode = false; P_ValueParser_OutputValue(new StringValue(P_ValueParser_ValueRaw.ToString())); } } } else { P_CharEscapedInString = false; } if (String_RecordChar) { P_ValueParser_ValueRaw.Append(c); } } CharIsHandled = true; break; } } #endregion #region Table Parser if (!P_ValueParser_StringMode && CurrentTable != null) // Only process these when not in a string. { int EndType = 0; switch (c) { case ':': if (!CurrentTable.PairHasCustomKey) { CurrentTable.PairHasCustomKey = true; CurrentTable.V1 = P_ValueParser_TakeValue(); P_ValueParser_ValueType = -1; } else { P_ThrowError(1); } CharIsHandled = true; break; case ']': EndType = 2; CharIsHandled = true; break; case ';': EndType = 1; CharIsHandled = true; break; } if (EndType > 0) { if (P_ValueParser_ValueType != -1) { CurrentTable.V2 = P_ValueParser_TakeValue(); if (CurrentTable.V2 != null) { if (CurrentTable.V1 != null) { CurrentTable.Table[CurrentTable.V1] = CurrentTable.V2; } else { CurrentTable.IndexingUBound++; CurrentTable.Table[CurrentTable.IndexingUBound] = CurrentTable.V2; } } } // Clear these so we can use them later. CurrentTable.V1 = null; CurrentTable.V2 = null; CurrentTable.PairHasCustomKey = false; if (EndType == 2) { // Close table and go back up. P_TableStack.RemoveAt(TableStackUBound); P_ValueParser_OutputValue(CurrentTable.Table); P_ValueParser_ValueType = -2; } else //if (EndType == 1) { P_ValueParser_ValueType = -1; } } } #endregion #region Character Ignore Handler if (!CharIsHandled && (c == ' ' | c == '|' | c == '\n')) { CharIsHandled = true; } #endregion // If nothing handled this character, it must be an error. if (!CharIsHandled) { P_ThrowError(1); } } P_Position++; if (EndingBlock) { P_EndBlock(); } } return(r); }
/// <summary> /// 关联 this.chart1.GetToolTipText /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void chart1_GetToolTipText(object sender, ToolTipEventArgs e) { if (e.HitTestResult.ChartElementType == ChartElementType.DataPoint && e.HitTestResult.Series == this.chart1.Series[0]) { DataPoint dp = (DataPoint)e.HitTestResult.Object; DateTime dt = DateTime.FromOADate(dp.XValue); int currentBar = _stra.NumDateTimes.Count - 1 - _stra.NumDateTimes.IndexOf(Numeric.Parse(dt.ToString("yyyyMMdd.HHmmss"))); e.Text = dt.ToString("yyyy/MM/dd[") + dt.ToString("ddd").Substring(1, 1) + "]"; e.Text += "\r\n时间 = " + dt.TimeOfDay; e.Text += "\r\n开 = " + _stra.Opens[currentBar]; e.Text += "\r\n高 = " + _stra.Highs[currentBar]; e.Text += "\r\n低 = " + _stra.Lows[currentBar]; e.Text += "\r\n收 = " + _stra.Closes[currentBar]; e.Text += "\r\n量 = " + _stra.Volumes[currentBar]; e.Text += "\r\n仓 = " + _stra.OpenInts[currentBar]; e.Text += "\r\n[" + _stra.Name + "]"; //指标提示 //e.Text += "\r\n[指标]"; foreach (var a in _stra.Indicators) { string input = null; if (a.Input == _stra.Highs) { input = "H"; } else if (a.Input == _stra.Lows) { input = "L"; } else if (a.Input == _stra.Opens) { input = "O"; } else if (a.Input == _stra.Closes) { input = "C"; } else if (a.Input == _stra.Volumes) { input = "V"; } else if (a.Input == _stra.OpenInts) { input = "I"; } if (input != null) { e.Text += "\r\n" + a.GetType().Name + "<" + input + ">("; foreach (int p in a.Periods) { e.Text += p + ","; } e.Text = e.Text.Remove(e.Text.Length - 1); e.Text += ")"; if (a.DictCustomSeries.Count == 1) { e.Text += ":" + a.DictCustomSeries.ElementAt(0).Value[currentBar].ToString("F2"); } else { foreach (var o in a.DictCustomSeries) { e.Text += "\r\n" + o.Key + " : " + o.Value[currentBar].ToString("F2"); } } } } //跨周期 if (_stra.DictPeriodValue.Count > 0) { e.Text += "\r\n------ 跨周期 ------"; } foreach (var a in _stra.DictPeriodValue) { var ldt = _stra.DictPeriodTime[a.Key].LastOrDefault(n => n <= dt); int curBar = _stra.DictPeriodTime[a.Key].Count - _stra.DictPeriodTime[a.Key].IndexOf(ldt); string i3 = ""; switch (a.Key.Item3) { case PeriodType.Tick: i3 = "笔"; break; case PeriodType.Second: i3 = "秒"; break; case PeriodType.Minute: i3 = "分"; break; case PeriodType.Hour: i3 = "时"; break; case PeriodType.Day: i3 = "天"; break; case PeriodType.Week: i3 = "周"; break; case PeriodType.Month: i3 = "月"; break; case PeriodType.Year: i3 = "年"; break; } e.Text += "\r\n↑" + a.Key.Item1 + " " + a.Key.Item2 + i3 + " : " + a.Value[curBar].ToString("F2"); //指标提示 foreach (var i in _stra.Indicators.Where(n => n.Input == a.Value)) { e.Text += "\r\n↑" + i.GetType().Name + "("; foreach (int p in i.Periods) { e.Text += p + ","; } e.Text = e.Text.Remove(e.Text.Length - 1); e.Text += ")"; if (i.DictCustomSeries.Count == 1) { e.Text += ":" + i.DictCustomSeries.ElementAt(0).Value[curBar].ToString("F2"); } else { foreach (var o in i.DictCustomSeries) { e.Text += "\r\n" + o.Key + " : " + o.Value[curBar].ToString("F2"); } } } } //交易提示 //foreach (Operation o in v.Value.Operations.Where(n => n.D == dt)) for (int i = 0; i < _stra.Operations.Count; i++) { var o = _stra.Operations[i]; if (o.Date == dt) { e.Text += $"\r\n{(o.Dir == Direction.Buy ? "买" : "卖")}{(o.Offset == Offset.Open ? "开" : "平")} {o.Lots}@{o.Price:.2}"; e.Text += $"\r\n[{o.Remark}]"; } } } }
/// <summary> /// Delegate used to submit the element </summary> private bool CanSubmit() { // Typically, this code should never be seen as the publish package dialogs should not // be active when there is no authenticator if (dynamoViewModel == null || !dynamoViewModel.Model.PackageManagerClient.HasAuthProvider) { ErrorString = Resources.CannotSubmitPackage; return(false); } if (Name.Contains(@"\") || Name.Contains(@"/") || Name.Contains(@"*")) { ErrorString = Resources.PackageNameCannotContainTheseCharacters; return(false); } if (Name.Length < 3) { ErrorString = Resources.NameNeedMoreCharacters; return(false); } if (Description.Length <= 10) { ErrorString = Resources.DescriptionNeedMoreCharacters; return(false); } if (MajorVersion.Length <= 0) { ErrorString = Resources.MajorVersionNonNegative; return(false); } if (MinorVersion.Length <= 0) { ErrorString = Resources.MinorVersionNonNegative; return(false); } if (BuildVersion.Length <= 0) { ErrorString = Resources.BuildVersionNonNegative; return(false); } if (Double.Parse(BuildVersion) + Double.Parse(MinorVersion) + Double.Parse(MajorVersion) <= 0) { ErrorString = Resources.VersionValueGreaterThan0; return(false); } if (!PackageContents.Any()) { ErrorString = Resources.PackageNeedAtLeastOneFile; return(false); } if (UploadState != PackageUploadHandle.State.Error) { ErrorString = ""; } if (Uploading) { return(false); } return(true); }
public LithpFloat(string value) { this.value = NumberType.Parse(value); }
/// <summary> /// Delegate used to submit the element </summary> private bool CanSubmit() { // Typically, this code should never be seen as the publish package dialogs should not // be active when there is no authenticator if (dynamoViewModel == null || !dynamoViewModel.Model.PackageManagerClient.HasAuthenticator) { ErrorString = "Your package must contain at least one file."; return(false); } if (Name.Contains(@"\") || Name.Contains(@"/") || Name.Contains(@"*")) { ErrorString = @"The name of the package cannot contain /,\, or *."; return(false); } if (Name.Length < 3) { ErrorString = "Name must be at least 3 characters."; return(false); } if (Description.Length <= 10) { ErrorString = "Description must be longer than 10 characters."; return(false); } if (MajorVersion.Length <= 0) { ErrorString = "You must provide a Major version as a non-negative integer."; return(false); } if (MinorVersion.Length <= 0) { ErrorString = "You must provide a Minor version as a non-negative integer."; return(false); } if (BuildVersion.Length <= 0) { ErrorString = "You must provide a Build version as a non-negative integer."; return(false); } if (Double.Parse(BuildVersion) + Double.Parse(MinorVersion) + Double.Parse(MajorVersion) <= 0) { ErrorString = "At least one of your version values must be greater than 0."; return(false); } if (!PackageContents.Any()) { ErrorString = "Your package must contain at least one file."; return(false); } if (UploadState != PackageUploadHandle.State.Error) { ErrorString = ""; } if (Uploading) { return(false); } return(true); }