예제 #1
0
파일: DMI.cs 프로젝트: Bulletz4mysa/NBTrade
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaBase.SUM(FormulaBase.MAX(new FormulaData[2]
            {
                FormulaBase.MAX(new FormulaData[2]
                {
                    FormulaData.op_Subtraction(this.get_HIGH(), this.get_LOW()),
                    FormulaBase.ABS(FormulaData.op_Subtraction(this.get_HIGH(), FormulaBase.REF(this.get_CLOSE(), 1.0)))
                }),
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_LOW(), FormulaBase.REF(this.get_CLOSE(), 1.0)))
            }), this.N);

            formulaData1.Name = (__Null)"TR ";
            FormulaData formulaData2 = FormulaData.op_Subtraction(this.get_HIGH(), FormulaBase.REF(this.get_HIGH(), 1.0));

            formulaData2.Name = (__Null)"HD ";
            FormulaData formulaData3 = FormulaData.op_Subtraction(FormulaBase.REF(this.get_LOW(), 1.0), this.get_LOW());

            formulaData3.Name = (__Null)"LD ";
            FormulaData formulaData4 = FormulaBase.SUM(FormulaBase.IF(FormulaData.op_BitwiseAnd(FormulaData.op_GreaterThan(formulaData2, FormulaData.op_Implicit(0.0)), FormulaData.op_GreaterThan(formulaData2, formulaData3)), formulaData2, FormulaData.op_Implicit(0.0)), this.N);

            formulaData4.Name = (__Null)"DMP";
            FormulaData formulaData5 = FormulaBase.SUM(FormulaBase.IF(FormulaData.op_BitwiseAnd(FormulaData.op_GreaterThan(formulaData3, FormulaData.op_Implicit(0.0)), FormulaData.op_GreaterThan(formulaData3, formulaData2)), formulaData3, FormulaData.op_Implicit(0.0)), this.N);

            formulaData5.Name = (__Null)"DMM";
            FormulaData formulaData6 = FormulaData.op_Division(FormulaData.op_Multiply(formulaData4, FormulaData.op_Implicit(100.0)), formulaData1);

            formulaData6.Name = (__Null)"PDI";
            FormulaData formulaData7 = FormulaData.op_Division(FormulaData.op_Multiply(formulaData5, FormulaData.op_Implicit(100.0)), formulaData1);

            formulaData7.Name = (__Null)"MDI";
            FormulaData formulaData8 = FormulaBase.MA(FormulaData.op_Multiply(FormulaData.op_Division(FormulaBase.ABS(FormulaData.op_Subtraction(formulaData7, formulaData6)), FormulaData.op_Addition(formulaData7, formulaData6)), FormulaData.op_Implicit(100.0)), this.M);

            formulaData8.Name = (__Null)"ADX";
            FormulaData formulaData9 = FormulaData.op_Division(FormulaData.op_Addition(formulaData8, FormulaBase.REF(formulaData8, this.M)), FormulaData.op_Implicit(2.0));

            formulaData9.Name = (__Null)"ADXR";
            return(new FormulaPackage(new FormulaData[4]
            {
                formulaData6,
                formulaData7,
                formulaData8,
                formulaData9
            }, ""));
        }
예제 #2
0
 private static FormulaProgram GetFormulaProgram(string Filename, FormulaBase fb)
 {
     if (Filename != null)
     {
         FormulaSpace space = (FormulaSpace)htFormulaSpace[Filename];
         if ((space == null) && System.IO.File.Exists(Filename))
         {
             space = FormulaSpace.Read(Filename);
             htFormulaSpace[Filename] = space;
         }
         if (space != null)
         {
             return(space.FindFormulaProgram(fb));
         }
     }
     return(null);
 }
예제 #3
0
        /// <summary>
        /// Extract the formula name and and parameters from a string
        /// </summary>
        /// <param name="NameAndParam">Name and parameter string , such as MA(50)</param>
        /// <param name="tbs">TextBox array, the method will extract parameters to this array</param>
        /// <param name="FormulaName">return the formula name</param>
        public static void ParamToTextBox(string NameAndParam, TextBox[] tbs, out string FormulaName)
        {
            FormulaBase fb = FormulaBase.GetFormulaByName(NameAndParam);

            FormulaName = fb.FormulaName;
            for (int i = 0; i < tbs.Length; i++)
            {
                if (i < fb.Params.Count)
                {
                    tbs[i].Text = fb.Params[i].Value;
                }
                else
                {
                    tbs[i].Text = "";
                }
            }
        }
예제 #4
0
        /// <summary>
        /// Get formula source xml file of a certain formula.
        /// </summary>
        /// <param name="fb"></param>
        /// <returns></returns>
        public static string GetFormulaFile(FormulaBase fb)
        {
            Assembly a   = fb.GetType().Assembly;
            string   Key = FormulaBase.GetAssemblyKey(a);

            if (Key != null)
            {
                foreach (string s in htAssembly.Keys)
                {
                    if (htAssembly[s].ToString() == Key)
                    {
                        return(s);
                    }
                }
            }
            return(null);
        }
예제 #5
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaBase.MAX(new FormulaData[2]
            {
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_H(), FormulaBase.REF(this.get_H(), 1.0))),
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_L(), FormulaBase.REF(this.get_L(), 1.0)))
            }).Name = (__Null)"TR";
            FormulaData formulaData1 = FormulaBase.IF(FormulaData.op_LessThanOrEqual(FormulaData.op_Addition(this.get_H(), this.get_L()), FormulaData.op_Addition(FormulaBase.REF(this.get_H(), 1.0), FormulaBase.REF(this.get_L(), 1.0))), FormulaData.op_Implicit(0.0), FormulaBase.MAX(new FormulaData[2]
            {
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_H(), FormulaBase.REF(this.get_H(), 1.0))),
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_L(), FormulaBase.REF(this.get_L(), 1.0)))
            }));

            formulaData1.Name = (__Null)"DMZ";
            FormulaData formulaData2 = FormulaBase.IF(FormulaData.op_GreaterThanOrEqual(FormulaData.op_Addition(this.get_H(), this.get_L()), FormulaData.op_Addition(FormulaBase.REF(this.get_H(), 1.0), FormulaBase.REF(this.get_L(), 1.0))), FormulaData.op_Implicit(0.0), FormulaBase.MAX(new FormulaData[2]
            {
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_H(), FormulaBase.REF(this.get_H(), 1.0))),
                FormulaBase.ABS(FormulaData.op_Subtraction(this.get_L(), FormulaBase.REF(this.get_L(), 1.0)))
            }));

            formulaData2.Name = (__Null)"DMF";
            FormulaData formulaData3 = FormulaData.op_Division(FormulaBase.SUM(formulaData1, this.N), FormulaData.op_Addition(FormulaBase.SUM(formulaData1, this.N), FormulaBase.SUM(formulaData2, this.N)));

            formulaData3.Name = (__Null)"DIZ";
            FormulaData formulaData4 = FormulaData.op_Division(FormulaBase.SUM(formulaData2, this.N), FormulaData.op_Addition(FormulaBase.SUM(formulaData2, this.N), FormulaBase.SUM(formulaData1, this.N)));

            formulaData4.Name = (__Null)"DIF";
            FormulaData formulaData5 = FormulaData.op_Subtraction(formulaData3, formulaData4);

            formulaData5.Name = (__Null)"DDI";
            formulaData5.SetAttrs("COLORSTICK");
            FormulaData formulaData6 = FormulaBase.SMA(formulaData5, this.N1, this.M);

            formulaData6.Name = (__Null)"ADDI";
            FormulaData formulaData7 = FormulaBase.MA(formulaData6, this.M1);

            formulaData7.Name = (__Null)"AD";
            return(new FormulaPackage(new FormulaData[3]
            {
                formulaData5,
                formulaData6,
                formulaData7
            }, ""));
        }
예제 #6
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaData.op_Multiply(FormulaData.op_Division(FormulaData.op_Subtraction(this.get_CLOSE(), FormulaBase.LLV(this.get_LOW(), this.N)), FormulaData.op_Subtraction(FormulaBase.HHV(this.get_HIGH(), this.N), FormulaBase.LLV(this.get_LOW(), this.N))), FormulaData.op_Implicit(100.0));

            formulaData1.Name = (__Null)"A";
            FormulaData formulaData2 = FormulaBase.MA(formulaData1, this.M1);

            formulaData2.Name = (__Null)"K";
            FormulaData formulaData3 = FormulaBase.MA(formulaData2, this.M2);

            formulaData3.Name = (__Null)"D";
            return(new FormulaPackage(new FormulaData[2]
            {
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #7
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData v = this.get_V();

            v.Name = (__Null)"VV";
            v.SetAttrs("VOLSTICK");
            this.SETNAME(v, "");
            FormulaData formulaData = FormulaBase.MA(v, this.M1);

            formulaData.Name = (__Null)"MA1";
            this.SETNAME(formulaData, "MA");
            return(new FormulaPackage(new FormulaData[2]
            {
                v,
                formulaData
            }, ""));
        }
예제 #8
0
파일: SO.cs 프로젝트: Bulletz4mysa/NBTrade
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaData.op_Division(FormulaData.op_Subtraction(this.get_C(), this.get_L()), FormulaData.op_Subtraction(this.get_H(), this.get_L()));

            formulaData1.Name = (__Null)"K ";
            FormulaData formulaData2 = FormulaBase.SMA(formulaData1, this.N1, 1.0);

            formulaData2.Name = (__Null)"SK ";
            FormulaData formulaData3 = FormulaBase.SMA(formulaData2, this.N2, 1.0);

            formulaData3.Name = (__Null)"SD ";
            return(new FormulaPackage(new FormulaData[2]
            {
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #9
0
        /// <summary>
        /// Create instance of OverlayManager
        /// </summary>
        public OverlayManager()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            ddlAddOverlay.Items.Clear();
            ddlAddOverlay.Items.Add("Select indicators to add");
            foreach (string s in new string[] { "HL", "MA", "EMA", "BB",
                                                "AreaBB", "SAR", "ZIGLABEL", "ZIG", "ZIGW", "ZIGSR", "SR", "EXTEND.SRAxisY", "COMPARE", "COMPARE2",
                                                "Fibonnaci", "LinRegr" })
            {
                ddlAddOverlay.Items.Add(FormulaBase.GetFormulaByName(s));
            }

            ddlAddOverlay.SelectedIndex = 0;
        }
예제 #10
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaBase.REF(this.get_CLOSE(), 1.0);

            formulaData1.Name = (__Null)"LC ";
            FormulaData formulaData2 = FormulaData.op_Multiply(FormulaData.op_Division(FormulaBase.SMA(FormulaBase.MAX(new FormulaData[2]
            {
                FormulaData.op_Subtraction(this.get_CLOSE(), formulaData1),
                FormulaData.op_Implicit(0.0)
            }), this.N1, 1.0), FormulaBase.SMA(FormulaBase.ABS(FormulaData.op_Subtraction(this.get_CLOSE(), formulaData1)), this.N1, 1.0)), FormulaData.op_Implicit(100.0));

            formulaData2.Name = (__Null)"RSI";
            return(new FormulaPackage(new FormulaData[1]
            {
                formulaData2
            }, ""));
        }
예제 #11
0
        public override FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = dp;
            FormulaData v = base.V;

            v.Name = "VV";
            v.SetAttrs("VOLSTICK");
            base.SETNAME(v, "");
            FormulaData formulaData = FormulaBase.MA(v, this.M1);

            formulaData.Name = "MA1";
            base.SETNAME(formulaData, "MA");
            return(new FormulaPackage(new FormulaData[]
            {
                v,
                formulaData
            }, ""));
        }
예제 #12
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaBase.EMA(FormulaBase.EMA(FormulaBase.EMA(this.get_CLOSE(), this.N), this.N), this.N);

            formulaData1.Name = (__Null)"TR";
            FormulaData formulaData2 = FormulaData.op_Multiply(FormulaData.op_Division(FormulaData.op_Subtraction(formulaData1, FormulaBase.REF(formulaData1, 1.0)), FormulaBase.REF(formulaData1, 1.0)), FormulaData.op_Implicit(100.0));

            formulaData2.Name = (__Null)"TRIX ";
            FormulaData formulaData3 = FormulaBase.MA(formulaData2, this.M);

            formulaData3.Name = (__Null)"TRMA ";
            return(new FormulaPackage(new FormulaData[2]
            {
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #13
0
        private void RefreshTree()
        {
            tvMethod.BeginUpdate();
            try
            {
                tvMethod.Nodes.Clear();
                tvMethod.Nodes.Add("Root");
                MemberInfo[] mis = FormulaBase.GetAllMembers();
                for (int i = 0; i < mis.Length; i++)
                {
                    object[] os = mis[i].GetCustomAttributes(false);
                    TreeNode tn = tvMethod.Nodes[0];
                    foreach (object o in os)
                    {
                        if (o is CategoryAttribute)
                        {
                            TreeNode tnCategory = null;
                            string   Category   = (o as CategoryAttribute).Category;
                            for (int j = 0; j < tn.Nodes.Count; j++)
                            {
                                if (tn.Nodes[j].Text == Category)
                                {
                                    tnCategory = tn.Nodes[j];
                                    break;
                                }
                            }
                            if (tnCategory == null)
                            {
                                tn.Nodes.Add(tnCategory = new TreeNode(Category, 0, 0));
                            }

                            TreeNode tnText = new TreeNode(mis[i].Name + GetParam(mis[i]), 1, 1);
                            tnText.Tag = mis[i];
                            tnCategory.Nodes.Add(tnText);
                        }
                    }
                }
                tvMethod.Nodes[0].Expand();
            }
            finally
            {
                tvMethod.EndUpdate();
            }
        }
예제 #14
0
        public static FormulaData operator /(FormulaData f1, FormulaData f2)
        {
            MakeSameLength(f1, f2);
            if (FormulaBase.Testing)
            {
                return(FormulaBase.TestData(0, f1, f2));
            }
            FormulaData f = new FormulaData(f1.Length);

            for (int i = 0; i < f1.Length; i++)
            {
                f.Data[i] = f1.Data[i] / f2.Data[i];
            }
            if (f1.FormulaType == FormulaType.Const && f2.FormulaType == FormulaType.Const)
            {
                f.FormulaType = FormulaType.Const;
            }
            return(f);
        }
예제 #15
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData amount = this.get_AMOUNT();

            amount.SetAttrs("VOLSTICK");
            FormulaData formulaData1 = FormulaBase.MA(this.get_AMOUNT(), this.N1);

            formulaData1.Name = (__Null)"MA1";
            FormulaData formulaData2 = FormulaBase.MA(this.get_AMOUNT(), this.N2);

            formulaData2.Name = (__Null)"MA2";
            return(new FormulaPackage(new FormulaData[3]
            {
                amount,
                formulaData1,
                formulaData2
            }, ""));
        }
예제 #16
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaBase.HHV(this.get_H(), this.N);

            formulaData1.Name = (__Null)"A ";
            FormulaData formulaData2 = FormulaBase.LLV(this.get_L(), this.N);

            formulaData2.Name = (__Null)"B ";
            FormulaData formulaData3 = FormulaData.op_Multiply(FormulaBase.BACKSET(this.get_ISLASTBAR(), this.N), FormulaData.op_Implicit(formulaData1.get_LASTDATA()));

            formulaData3.Name = (__Null)"HH";
            formulaData3.SetAttrs("WIDTH2");
            FormulaData formulaData4 = FormulaData.op_Multiply(FormulaBase.BACKSET(this.get_ISLASTBAR(), this.N), FormulaData.op_Implicit(formulaData2.get_LASTDATA()));

            formulaData4.Name = (__Null)"LL";
            formulaData4.SetAttrs("WIDTH2");
            FormulaData formulaData5 = FormulaData.op_Subtraction(formulaData3, formulaData4);

            formulaData5.Name = (__Null)"HEIGHT ";
            FormulaData formulaData6 = FormulaData.op_Addition(formulaData4, FormulaData.op_Multiply(formulaData5, FormulaData.op_Implicit(0.382)));

            formulaData6.Name = (__Null)"A1 ";
            FormulaData formulaData7 = FormulaData.op_Addition(formulaData4, FormulaData.op_Multiply(formulaData5, FormulaData.op_Implicit(0.5)));

            formulaData7.Name = (__Null)"A2 ";
            FormulaData formulaData8 = FormulaData.op_Addition(formulaData4, FormulaData.op_Multiply(formulaData5, FormulaData.op_Implicit(0.618)));

            formulaData8.Name = (__Null)"A3 ";
            this.SETTEXTVISIBLE(formulaData3, false);
            this.SETTEXTVISIBLE(formulaData4, false);
            this.SETTEXTVISIBLE(formulaData6, false);
            this.SETTEXTVISIBLE(formulaData7, false);
            this.SETTEXTVISIBLE(formulaData8, false);
            return(new FormulaPackage(new FormulaData[5]
            {
                formulaData3,
                formulaData4,
                formulaData6,
                formulaData7,
                formulaData8
            }, ""));
        }
예제 #17
0
파일: BB.cs 프로젝트: Bulletz4mysa/NBTrade
        public override FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = dp;
            FormulaData formulaData = FormulaBase.MA(base.CLOSE, this.N);

            formulaData.Name = "MID ";
            FormulaData formulaData2 = formulaData + this.P * FormulaBase.STD(base.CLOSE, this.N);

            formulaData2.Name = "UPPER";
            FormulaData formulaData3 = formulaData - this.P * FormulaBase.STD(base.CLOSE, this.N);

            formulaData3.Name = "LOWER";
            return(new FormulaPackage(new FormulaData[]
            {
                formulaData,
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #18
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaBase.EMA(this.get_V(), this.N1);

            formulaData1.Name = (__Null)"E1 ";
            FormulaData formulaData2 = FormulaData.op_Multiply(FormulaData.op_Division(FormulaData.op_Subtraction(formulaData1, FormulaBase.EMA(this.get_V(), this.N2)), formulaData1), FormulaData.op_Implicit(100.0));

            formulaData2.Name = (__Null)"PVO ";
            formulaData2.SetAttrs("WIDTH1.6,HIGHQUALITY");
            FormulaData formulaData3 = FormulaBase.EMA(formulaData2, this.N3);

            formulaData3.Name = (__Null)"M ";
            return(new FormulaPackage(new FormulaData[2]
            {
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #19
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaData.op_Multiply(FormulaData.op_Division(FormulaData.op_Subtraction(this.get_CLOSE(), this.get_OPEN()), FormulaData.op_Subtraction(this.get_HIGH(), this.get_LOW())), this.get_VOL());

            formulaData1.Name = (__Null)"WVAD ";
            FormulaData formulaData2 = FormulaBase.MA(formulaData1, this.N1);

            formulaData2.Name = (__Null)"MA1";
            FormulaData formulaData3 = FormulaBase.MA(formulaData1, this.N2);

            formulaData3.Name = (__Null)"MA2";
            return(new FormulaPackage(new FormulaData[3]
            {
                formulaData1,
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #20
0
        public override FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = dp;
            FormulaData formulaData = (base.CLOSE - FormulaBase.MA(base.CLOSE, this.L1)) / FormulaBase.MA(base.CLOSE, this.L1) * 100.0;

            formulaData.Name = "BIAS1 ";
            FormulaData formulaData2 = (base.CLOSE - FormulaBase.MA(base.CLOSE, this.L2)) / FormulaBase.MA(base.CLOSE, this.L2) * 100.0;

            formulaData2.Name = "BIAS2 ";
            FormulaData formulaData3 = (base.CLOSE - FormulaBase.MA(base.CLOSE, this.L3)) / FormulaBase.MA(base.CLOSE, this.L3) * 100.0;

            formulaData3.Name = "BIAS3 ";
            return(new FormulaPackage(new FormulaData[]
            {
                formulaData,
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #21
0
 private void AddFavorite(string[] Formulas)
 {
     ddlFavoriteFormula.Items.Clear();
     ddlFavoriteFormula.Items.Add("Select to add new formula");
     foreach (string s in Formulas)
     {
         FormulaBase fb = FormulaBase.GetFormulaByName(s);
         foreach (object o in ddlFavoriteFormula.Items)
         {
             if (o.GetType() == fb.GetType())
             {
                 goto Next;
             }
         }
         ddlFavoriteFormula.Items.Add(fb);
         Next :;
     }
     ddlFavoriteFormula.SelectedIndex = 0;
 }
예제 #22
0
파일: BB.cs 프로젝트: Bulletz4mysa/NBTrade
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaBase.MA(this.get_CLOSE(), this.N);

            formulaData1.Name = (__Null)"MID ";
            FormulaData formulaData2 = FormulaData.op_Addition(formulaData1, FormulaData.op_Multiply(FormulaData.op_Implicit(this.P), FormulaBase.STD(this.get_CLOSE(), this.N)));

            formulaData2.Name = (__Null)"UPPER";
            FormulaData formulaData3 = FormulaData.op_Subtraction(formulaData1, FormulaData.op_Multiply(FormulaData.op_Implicit(this.P), FormulaBase.STD(this.get_CLOSE(), this.N)));

            formulaData3.Name = (__Null)"LOWER";
            return(new FormulaPackage(new FormulaData[3]
            {
                formulaData1,
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #23
0
        private void CreateNode(FormulaBase fb)
        {
            string r = fb.GetType().ToString();

            if (r.StartsWith("FML."))
            {
                r = r.Substring(4);
            }
            int i = r.IndexOf('.');

            if (i < 0)
            {
                r = "Basic." + r;
            }

            TreeNode tn = tvFormula.Nodes[0];

            while ((i = r.IndexOf('.')) > 0)
            {
                string s = r.Substring(0, i);
                r = r.Substring(i + 1);
                TreeNode tnNew = null;
                for (int j = 0; j < tn.Nodes.Count; j++)
                {
                    if (tn.Nodes[j].Text == s)
                    {
                        tnNew = tn.Nodes[j];
                        break;
                    }
                }
                if (tnNew == null)
                {
                    tn.Nodes.Add(tnNew = new TreeNode(s, 0, 0));
                }

                tn = tnNew;
            }
            TreeNode tnText = new TreeNode(fb.CombineName, 1, 1);

            tnText.Tag = fb;
            tn.Nodes.Add(tnText);
        }
예제 #24
0
        public override FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = dp;
            FormulaData formulaData = FormulaBase.EMA(base.CLOSE, this.SHORT) - FormulaBase.EMA(base.CLOSE, this.LONG);

            formulaData.Name = "DIFF ";
            FormulaData formulaData2 = FormulaBase.EMA(formulaData, this.M);

            formulaData2.Name = "DEA  ";
            FormulaData formulaData3 = 2.0 * (formulaData - formulaData2);

            formulaData3.Name = "MACD ";
            formulaData3.SetAttrs(" COLORSTICK");
            return(new FormulaPackage(new FormulaData[3]
            {
                formulaData,
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #25
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaData.op_Subtraction(FormulaBase.EMA(this.get_VOL(), this.SHORT), FormulaBase.EMA(this.get_VOL(), this.LONG));

            formulaData1.Name = (__Null)"DIFF ";
            FormulaData formulaData2 = FormulaBase.EMA(formulaData1, this.M);

            formulaData2.Name = (__Null)"DEA  ";
            FormulaData formulaData3 = FormulaData.op_Subtraction(formulaData1, formulaData2);

            formulaData3.Name = (__Null)"MACD ";
            formulaData3.SetAttrs(" COLORSTICK");
            return(new FormulaPackage(new FormulaData[3]
            {
                formulaData1,
                formulaData2,
                formulaData3
            }, ""));
        }
예제 #26
0
        public static FormulaData operator !(FormulaData f1)
        {
            if (FormulaBase.Testing)
            {
                return(FormulaBase.TestData(0, f1));
            }
            FormulaData nf = new FormulaData(f1.Length);

            for (int i = 0; i < f1.Length; i++)
            {
                if (f1.Data[i] == 0)
                {
                    nf.Data[i] = 1;
                }
                else
                {
                    nf.Data[i] = 0;
                }
            }
            return(nf);
        }
예제 #27
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaData.op_Division(this.get_C(), FormulaBase.REF(this.get_C(), this.N));

            formulaData1.Name = (__Null)"RC";
            FormulaData formulaData2 = FormulaBase.SMA(FormulaBase.REF(formulaData1, 1.0), this.N, 1.0);

            formulaData2.Name = (__Null)"ARC";
            FormulaData formulaData3 = FormulaData.op_Subtraction(FormulaBase.MA(FormulaBase.REF(formulaData2, 1.0), this.N1), FormulaBase.MA(FormulaBase.REF(formulaData2, 1.0), this.N2));

            formulaData3.Name = (__Null)"DIF";
            FormulaData formulaData4 = FormulaBase.SMA(formulaData3, this.N, 1.0);

            formulaData4.Name = (__Null)"RCCD";
            return(new FormulaPackage(new FormulaData[2]
            {
                formulaData3,
                formulaData4
            }, ""));
        }
예제 #28
0
        public static FormulaData operator !(FormulaData f1)//op_LogicalNot(FormulaData f1)
        {
            if (FormulaBase.Testing)
            {
                return(FormulaBase.TestData(0, new FormulaData[] { f1 }));
            }
            FormulaData data = new FormulaData(f1.Length);

            for (int i = 0; i < f1.Length; i++)
            {
                if (f1.Data[i] == 0.0)
                {
                    data.Data[i] = 1.0;
                }
                else
                {
                    data.Data[i] = 0.0;
                }
            }
            return(data);
        }
예제 #29
0
        /// <summary>
        /// Create a formula string with parameters
        /// </summary>
        /// <param name="FormulaName">Formula name</param>
        /// <param name="tbs">Parameter TextBox array </param>
        /// <returns>Formula string with parameters</returns>
        public static string TextBoxToParam(string FormulaName, TextBox[] tbs)
        {
            string s = "";
            int    j = FormulaName.IndexOf('(');

            if (j >= 0)
            {
                FormulaName = FormulaName.Substring(0, j);
            }

            for (int i = 0; i < tbs.Length; i++)
            {
                if (tbs[i].Text != "")
                {
                    if (s != "")
                    {
                        s += ",";
                    }
                    s += tbs[i].Text;
                }
                else
                {
                    break;
                }
            }
            if (s != "")
            {
                s = "(" + s + ")";
            }
            FormulaBase fb = FormulaBase.GetFormulaByName(FormulaName);

            if (fb != null)
            {
                return(FormulaName + s);
            }
            else
            {
                return("");
            }
        }
예제 #30
0
        public virtual FormulaPackage Run(IDataProvider dp)
        {
            this.DataProvider = (__Null)dp;
            FormulaData formulaData1 = FormulaData.op_Division(FormulaData.op_Addition(FormulaData.op_Addition(this.get_HIGH(), this.get_LOW()), this.get_CLOSE()), FormulaData.op_Implicit(3.0));

            formulaData1.Name = (__Null)"TYP";
            FormulaData formulaData2 = FormulaBase.LLV(this.get_LOW(), this.N);

            formulaData2.Name = (__Null)"LL";
            FormulaData formulaData3 = FormulaBase.HHV(this.get_HIGH(), this.N);

            formulaData3.Name = (__Null)"HH";
            FormulaData formulaData4 = FormulaData.op_Addition(formulaData1, FormulaData.op_Subtraction(formulaData1, formulaData2));

            formulaData4.Name = (__Null)"WR";
            FormulaData formulaData5 = FormulaData.op_Addition(formulaData1, FormulaData.op_Subtraction(formulaData3, formulaData2));

            formulaData5.Name = (__Null)"MR";
            FormulaData formulaData6 = FormulaData.op_Subtraction(FormulaData.op_Multiply(FormulaData.op_Implicit(2.0), formulaData3), formulaData2);

            formulaData6.Name = (__Null)"SR";
            FormulaData formulaData7 = FormulaData.op_Subtraction(formulaData1, FormulaData.op_Subtraction(formulaData3, formulaData1));

            formulaData7.Name = (__Null)"WS";
            FormulaData formulaData8 = FormulaData.op_Subtraction(formulaData1, FormulaData.op_Subtraction(formulaData3, formulaData2));

            formulaData8.Name = (__Null)"MS";
            FormulaData formulaData9 = FormulaData.op_Subtraction(FormulaData.op_Multiply(FormulaData.op_Implicit(2.0), formulaData2), formulaData3);

            formulaData9.Name = (__Null)"SS";
            return(new FormulaPackage(new FormulaData[6]
            {
                formulaData4,
                formulaData5,
                formulaData6,
                formulaData7,
                formulaData8,
                formulaData9
            }, ""));
        }