Example #1
0
 /// <summary>
 /// 创建方法
 /// </summary>
 /// <param name="indicator">指标</param>
 /// <param name="id">ID</param>
 /// <param name="name">名称</param>
 /// <param name="withParameters">是否有参数</param>
 public CFunctionUI(CIndicator indicator, int id, String name, UIXml xml)
 {
     m_indicator = indicator;
     m_ID        = id;
     m_name      = name;
     m_xml       = xml;
 }
Example #2
0
        /// <summary>
        /// 创建指标
        /// </summary>
        /// <param name="native">方法库</param>
        /// <param name="script">脚本</param>
        /// <param name="xml">XML</param>
        /// <returns>指标</returns>
        public static CIndicator CreateIndicator(string script, UIXml xml)
        {
            CIndicator indicator = xml.Native.CreateIndicator();
            CTable     table     = xml.Native.CreateTable();

            indicator.DataSource = table;
            CFunctionBase.AddFunctions(indicator);
            CFunctionUI.AddFunctions(indicator, xml);
            CFunctionWin.AddFunctions(indicator);
            CFunctionAjax.AddFunctions(indicator);
            int index = 1000000;

            string[] functions     = FUNCTIONS.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            int      functionsSize = functions.Length;

            for (int i = 0; i < functionsSize; i++)
            {
                indicator.AddFunction(new CFunctionEx(indicator, index + i, functions[i], xml));
            }
            indicator.Script = script;
            table.AddColumn(0);
            table.Set(0, 0, 0);
            indicator.OnCalculate(0);
            return(indicator);
        }
Example #3
0
        /// <summary>
        /// 创建指标
        /// </summary>
        /// <param name="id">编号</param>
        /// <param name="script">脚本</param>
        /// <param name="xml">XML</param>
        /// <returns>指标</returns>
        public static CIndicator CreateIndicator2(String id, ChatData chatData, UIXml xml)
        {
            CIndicator indicator = xml.Native.CreateIndicator();

            indicator.Name = id;
            CTable table = xml.Native.CreateTable();

            indicator.DataSource = table;
            indicator.Tag        = chatData;
            CFunctionBase.AddFunctions(indicator);
            CFunctionUI.AddFunctions(indicator, xml);
            CFunctionWin.AddFunctions(indicator);
            int index = STARTINDEX;

            String[] functions     = FUNCTIONS.Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            int      functionsSize = functions.Length;

            for (int i = 0; i < functionsSize; i++)
            {
                indicator.AddFunction(new CFunctionEx(indicator, index + i, functions[i], xml));
            }
            indicator.Script = chatData.m_content;
            table.AddColumn(0);
            table.Set(0, 0, 0);
            indicator.OnCalculate(0);
            return(indicator);
        }
Example #4
0
        /// <summary>
        /// 添加方法
        /// </summary>
        /// <param name="indicator">方法库</param>
        /// <param name="native">脚本</param>
        /// <param name="xml">XML</param>
        /// <returns>指标</returns>
        public static void AddFunctions(CIndicator indicator, UIXml xml)
        {
            string[] functions     = FUNCTIONS.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            int      functionsSize = functions.Length;

            for (int i = 0; i < functionsSize; i++)
            {
                indicator.AddFunction(new CFunctionUI(indicator, STARTINDEX + i, PREFIX + functions[i], xml));
            }
        }
Example #5
0
        /// <summary>
        /// 异步运行计划
        /// </summary>
        /// <param name="parameter">参数</param>
        public void Run(object parameter)
        {
            //获取参数
            object[] parameters    = parameter as object[];
            String   id            = parameters[0].ToString();
            String   commandString = parameters[1].ToString();

            SetLastResult(id, "正在执行");
            try
            {
                UIXml uiXml = new UIXml();
                uiXml.CreateNative();
                CIndicator indicator = CFunctionEx.CreateIndicator(id, commandString, uiXml);
                indicator.Dispose();
                uiXml.Dispose();
            }
            catch (Exception ex)
            {
                SetLastResult(id, "失败:" + ex.Message + "\r\n" + ex.StackTrace);
                return;
            }
            SetLastResult(id, "成功");
        }
Example #6
0
 /// <summary>
 /// 创建脚本
 /// </summary>
 /// <param name="xml">XML对象</param>
 public GaiaScript(UIXml xml)
 {
     m_xml = xml;
 }