Exemple #1
0
        //* -----------------------------------------------------------------------*
        /// <summary>解像度列挙体に対応する解説を取得します。</summary>
        ///
        /// <param name="resolution">解像度列挙体</param>
        /// <returns>解説</returns>
        static public string ToString(EResolution resolution)
        {
            string    strRes = resolution.ToString().Replace("plus", "+").Replace("43", "");
            Rectangle rect   = CResolution.toRect(resolution);

            return(strRes + string.Format("({0}x{1})", rect.Width, rect.Height));
        }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution < EResolution.Day || EResolution.Volume == resolution ||
                EResolution.Second == resolution || resolution > EResolution.Quarter)
            {
                var m_totalticks = (Bars.UpTicks[0] + Bars.DownTicks[0]);
                if (PublicFunctions.DoubleGreater(m_totalticks, 0))
                {
                    m_volratio.Value = ((100
                                         * (Bars.UpTicks[0] - Bars.DownTicks[0]))
                                        / ((m_totalticks)));
                }
                else
                {
                    m_volratio.Value = 0;
                }
                m_volratioavg.Value = m_xaverage1[0];
                Plot1.Set(0, m_volratioavg.Value);
                Plot2.Set(0, 0);
                Plot1.Colors[0] = m_normgradientcolor1[0];
                if (this.CrossesOver(m_volratioavg, upvolalertpct))
                {
                    Alerts.Alert("UpVol alert");
                }
                else
                {
                    if (this.CrossesUnder(m_volratioavg, dnvolalertpct))
                    {
                        Alerts.Alert("DnVol alert");
                    }
                }
            }
        }
Exemple #3
0
        //* -----------------------------------------------------------------------*
        /// <summary>解像度列挙体に対応する解像度を取得します。</summary>
        ///
        /// <param name="resolution">解像度列挙体</param>
        /// <returns>解像度</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// 予約値を設定しようとした場合。
        /// </exception>
        public static Rectangle toRect(EResolution resolution)
        {
            switch (resolution)
            {
            case EResolution.VGA:
                return(new Rectangle(0, 0, 640, 480));

            case EResolution.SVGA:
                return(new Rectangle(0, 0, 800, 600));

            case EResolution.XGA:
                return(new Rectangle(0, 0, 1024, 768));

            case EResolution.XGAplus:
                return(new Rectangle(0, 0, 1154, 864));

            case EResolution.SXGA43:
                return(new Rectangle(0, 0, 1280, 960));

            case EResolution.SXGA:
                return(new Rectangle(0, 0, 1280, 1024));

            case EResolution.SXGAplus:
                return(new Rectangle(0, 0, 1400, 1050));

            case EResolution.UXGA:
                return(new Rectangle(0, 0, 1600, 1200));
            }
            throw new ArgumentOutOfRangeException();
        }
Exemple #4
0
        //* -----------------------------------------------------------------------*
        /// <summary>解像度列挙体に対応する解説を取得します。</summary>
        ///
        /// <param name="resolution">解像度列挙体。</param>
        /// <returns>解説。</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// 予約値を設定しようとした場合。
        /// </exception>
        public static string getDescription(this EResolution resolution)
        {
            string strRes = resolution.ToString().Replace("plus", "+");
            Point  pos    = resolution.getXY();

            return(strRes + string.Format(
                       "({0}x{1})", pos.X.ToString(), pos.Y.ToString()));
        }
        //* -----------------------------------------------------------------------*
        /// <summary>解像度列挙体に対応する解説を取得します。</summary>
        ///
        /// <param name="resolution">解像度列挙体</param>
        /// <returns>解説</returns>
        public static string ToString(this EResolution resolution)
        {
            string    strRes = resolution.ToString().Replace("plus", "+").Replace("43", string.Empty);
            Rectangle rect   = resolution.toRect();

            return(strRes + string.Format(
                       "({0}x{1})", rect.Width.ToString(), rect.Height.ToString()));
        }
        //* -----------------------------------------------------------------------*
        /// <summary>解像度間の誤差を取得します。</summary>
        ///
        /// <param name="res1">解像度列挙体1。</param>
        /// <param name="res2">解像度列挙体2。</param>
        /// <returns>解像度。</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// 予約値を設定しようとした場合。
        /// </exception>
        public static Vector2 getScaleGap(EResolution res1, EResolution res2)
        {
            Rectangle rectRes1 = res1.toRect();
            Rectangle rectRes2 = res2.toRect();

            return(new Vector2(
                       (float)(rectRes1.Width) / (float)(rectRes2.Width),
                       (float)(rectRes1.Height) / (float)(rectRes2.Height)));
        }
Exemple #7
0
 //* -----------------------------------------------------------------------*
 /// <summary>より上位のデバイスが対応している解像度を取得します。</summary>
 /// <remarks>
 /// もし与えられた解像度が最上位の場合、最下位の解像度を返します。
 /// </remarks>
 ///
 /// <param name="resolusion">基準となる解像度列挙体</param>
 /// <returns>より上位の解像度列挙体</returns>
 public EResolution getNext(EResolution resolusion)
 {
     for (EResolution __res = resolusion + 1; __res < EResolution.__reserved; __res++)
     {
         if (supports.Contains(__res))
         {
             return(__res);
         }
     }
     return(EResolution.VGA);
 }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (EResolution.Quarter == resolution ||
                EResolution.Day <= resolution && resolution <= EResolution.Year)
            {
                return;
            }

            Plot1.Set(0, Bars.DownTicks[0]);
        }
Exemple #9
0
    public static void SetGameResolutions(EResolution e)
    {
        var h = (int)e;

        if (h > Screen.currentResolution.height)
        {
            h = Screen.currentResolution.height;
        }
        var w = Mathf.CeilToInt(1.3333333f * h);

        Screen.SetResolution(w, h, false);
    }
Exemple #10
0
        //* -----------------------------------------------------------------------*
        /// <summary>対応する最大解像度を取得します。</summary>
        ///
        /// <param name="bWide">ワイド画面を優先して検索するかどうか。</param>
        /// <returns>対応する最大解像度。</returns>
        public static EResolution getMaxResolution(bool bWide)
        {
            EResolution resolution = getMinResolution(bWide);
            EResolution resNext    = resolution;

            do
            {
                resolution = resNext;
                resNext    = getNext(resolution);
            }while(resolution < resNext);
            return(resolution);
        }
Exemple #11
0
		/// <summary>
		///   初始化
		/// </summary>
		/// <param name="type">週期定義類型</param>
		/// <param name="size">週期大小</param>
		public Resolution(EResolution type, int size) {
			__cType = type;
			__iSize = size;
			
			__iRate = 1;
			__dUnit = 1;
			__bModulo = false;
			__iSessionCount = 0;
			__iTotalSeconds = Convert(type, size);
			__cEndTime = TimeSpan.Zero;
			__cStartTime = TimeSpan.Zero;
		}
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if ((resolution < EResolution.Day || EResolution.Volume == resolution ||
                 EResolution.Second == resolution || resolution > EResolution.Quarter) &&
                (Bars.Time[0].Date != Bars.Time[1].Date))
            {
                Plot1.Set(0, Bars.High[0]);
                Plot2.Set(0, Bars.Low[0]);
                Alerts.Alert();
            }
        }
        private static SeriesSymbolData CreateSeries(string symbolId, EResolution type)
        {
            InstrumentDataRequest cRequest = new InstrumentDataRequest()
            {
                Exchange   = "TWSE",
                DataFeed   = "Mitake",
                Range      = DataRequest.CreateBarsBack(DateTime.Now, 1),
                Resolution = new Resolution(type, 1),
                Symbol     = symbolId
            };

            return(new SeriesSymbolData(cRequest));
        }
Exemple #14
0
        //* -----------------------------------------------------------------------*
        /// <summary>より上位のデバイスが対応している解像度を取得します。</summary>
        /// <remarks>
        /// もし与えられた解像度が最上位の場合、最下位の解像度を返します。
        /// </remarks>
        ///
        /// <param name="resolution">基準となる解像度列挙体。</param>
        /// <returns>より上位の解像度列挙体。</returns>
        public static EResolution getPrev(EResolution resolution)
        {
            bool bWide = resolution.isWide();

            for (EResolution __res = resolution - 1; __res > EResolution.VGA; __res--)
            {
                if (supports.Contains(__res) && __res.isWide() == bWide)
                {
                    return(__res);
                }
            }
            return(getMinResolution(bWide));
        }
Exemple #15
0
        // TODO : この辺オペレータ オーバーロードできないかなぁ

        //* -----------------------------------------------------------------------*
        /// <summary>より上位のデバイスが対応している解像度を取得します。</summary>
        /// <remarks>
        /// もし与えられた解像度が最上位の場合、最下位の解像度を返します。
        /// </remarks>
        ///
        /// <param name="resolution">基準となる解像度列挙体。</param>
        /// <returns>より上位の解像度列挙体。</returns>
        public static EResolution getNext(EResolution resolution)
        {
            bool bWide = resolution.isWide();

            for (EResolution __res = resolution + 1; __res < EResolution.__reserved; __res++)
            {
                if (supports.Contains(__res) && __res.isWide() == bWide)
                {
                    return(__res);
                }
            }
            return(getMinResolution(bWide));
        }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;
            if (resolution == EResolution.Quarter ||
                EResolution.Week <= resolution && resolution <= EResolution.Year) return;

            if ( Bars.Time[0].DayOfWeek < Bars.Time[1].DayOfWeek )
            {
                Plot1.Set(0, Bars.High[0]);
                Plot2.Set(0, Bars.Low[0]);
                Alerts.Alert();
            }
        }
Exemple #17
0
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>解像度列挙体に対応する解像度を取得します。</summary>
        ///
        /// <param name="resolution">解像度列挙体</param>
        /// <returns>解像度</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// 予約値を設定しようとした場合。
        /// </exception>
        public static Rectangle toRect(this EResolution resolution)
        {
            switch (resolution)
            {
            case EResolution.VGA:
                return(new Rectangle(0, 0, 640, 480));

            case EResolution.SVGA:
                return(new Rectangle(0, 0, 800, 600));

            case EResolution.XGA:
                return(new Rectangle(0, 0, 1024, 768));

            case EResolution.XGAplus:
                return(new Rectangle(0, 0, 1154, 864));

            case EResolution.SXGA43:
                return(new Rectangle(0, 0, 1280, 960));

            case EResolution.SXGA:
                return(new Rectangle(0, 0, 1280, 1024));

            case EResolution.SXGAplus:
                return(new Rectangle(0, 0, 1400, 1050));

            case EResolution.UXGA:
                return(new Rectangle(0, 0, 1600, 1200));

            case EResolution.WVGAplus:
                return(new Rectangle(0, 0, 848, 480));

            case EResolution.HD720p:
                return(new Rectangle(0, 0, 1280, 720));

            case EResolution.WXGA:
                return(new Rectangle(0, 0, 1280, 768));

            case EResolution.FullWideXGA:
                return(new Rectangle(0, 0, 1360, 768));

            case EResolution.WXGAplus:
                return(new Rectangle(0, 0, 1440, 900));

            case EResolution.WSXGAplus:
                return(new Rectangle(0, 0, 1680, 1050));

            case EResolution.FullHD:
                return(new Rectangle(0, 0, 1920, 1080));
            }
            throw new ArgumentOutOfRangeException();
        }
Exemple #18
0
 //* -----------------------------------------------------------------------*
 /// <summary>対応する最低解像度を取得します。</summary>
 ///
 /// <param name="bWide">ワイド画面を優先して検索するかどうか。</param>
 /// <returns>対応する最低解像度。</returns>
 public static EResolution getMinResolution(bool bWide)
 {
     for (
         EResolution resolution = EResolution.VGA;
         resolution < EResolution.__reserved; resolution++
         )
     {
         if (supports.Contains(resolution) && resolution.isWide() == bWide)
         {
             return(resolution);
         }
     }
     return(bWide ? getMinResolution(false) : EResolution.VGA);
 }
Exemple #19
0
		private static int Convert(EResolution type, int size) {
			switch (type) {
				case EResolution.Minute:
					return size * MIN_BASE_TOTALSECONDS;
				case EResolution.Hour:
					return size * 3600;
				case EResolution.Day:
					return size * MAX_BASE_TOTALSECONDS;
				case EResolution.Week:
					return size * MAX_BASE_TOTALSECONDS * 7;
				case EResolution.Month:
					return size * MAX_BASE_TOTALSECONDS * 31;
			}
			return MIN_BASE_TOTALSECONDS;
		}
Exemple #20
0
		private static int Convert(EResolution type, int size) {
			switch (type) {
				case EResolution.Minute:
					return size * MIN_BASE_TOTALSECONDS;
				case EResolution.Hour:
					return size * 3600;
				case EResolution.Day:
					return size * MAX_BASE_TOTALSECONDS;
				case EResolution.Week:
					return size * MAX_BASE_TOTALSECONDS * 7;
				case EResolution.Month:
					return size * MAX_BASE_TOTALSECONDS * 31;
			}
			return MIN_BASE_TOTALSECONDS;
		}
Exemple #21
0
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution > EResolution.Quarter)
            {
                return;
            }

            if (Bars.Time[0].Year != Bars.Time[1].Year)
            {
                Plot1.Set(0, Bars.High[0]);
                Plot2.Set(0, Bars.Low[0]);
                Alerts.Alert();
            }
        }
Exemple #22
0
        //* ────────────-_______________________*
        //* constructor & destructor ───────────────────────*

        //* -----------------------------------------------------------------------*
        /// <summary>コンストラクタ。</summary>
        public CResolution()
        {
            foreach (DisplayMode mode in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes)
            {
                for (EResolution i = EResolution.VGA; i < EResolution.__reserved; i++)
                {
                    Rectangle rect = toRect(i);
                    if (mode.Width == rect.Width && mode.Height == rect.Height && !supports.Contains(i))
                    {
                        supports.Add(i);
                        break;
                    }
                }
            }
            supports.Sort();
            now = supports[0];
        }
Exemple #23
0
        /// <summary>
        ///   將設定檔轉換為 InstrumentDataRequest 列表的格式
        /// </summary>
        /// <param name="requests">RequestSetting 陣列</param>
        /// <returns>返回值: InstrumentDataRequest 列表</returns>
        public static List <InstrumentDataRequest> Convert(List <RequestSetting> requests)
        {
            List <InstrumentDataRequest> cResult = new List <InstrumentDataRequest>();

            foreach (RequestSetting cRequest in requests)
            {
                string[]    sPeriods    = cRequest.DataPeriod.Split(',');
                int         iPeriodSize = int.Parse(sPeriods[0]);
                EResolution cResolution = (EResolution)Enum.Parse(typeof(EResolution), sPeriods[1]);

                InstrumentDataRequest cDataRequest = new InstrumentDataRequest()
                {
                    Exchange   = cRequest.Exchange,
                    DataFeed   = cRequest.DataFeed,
                    Resolution = new Resolution(cResolution, iPeriodSize),
                    Symbol     = cRequest.SymbolId
                };

                string[] sParams  = cRequest.Range.Split(',');
                string   sMode    = sParams[0];
                string[] sArgs    = sParams[1].Split(';');
                DateTime cEndDate = DateTime.Parse(sArgs[0]);
                if (cEndDate == MAX_REQUEST_LASTDATE)
                {
                    cEndDate = DateTime.Today;
                }

                switch (sMode)
                {
                case "barsBack":
                    cDataRequest.Range = DataRequest.CreateBarsBack(cEndDate, int.Parse(sArgs[1]));
                    break;

                case "daysBack":
                    cDataRequest.Range = DataRequest.CreateDaysBack(cEndDate, int.Parse(sArgs[1]));
                    break;

                case "fromTo":
                    cDataRequest.Range = DataRequest.CreateFromTo(DateTime.Parse(sArgs[1]), cEndDate);
                    break;
                }
                cResult.Add(cDataRequest);
            }
            return(cResult);
        }
Exemple #24
0
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution == EResolution.Quarter ||
                EResolution.Week <= resolution && resolution <= EResolution.Year)
            {
                return;
            }

            if (Bars.Time[0].Date != Bars.Time[1].Date)
            {
                m_counter.Value    = (m_counter.Value + 1);
                m_yestopen.Value   = m_todaysopen.Value;
                m_yesthigh.Value   = m_todayshigh.Value;
                m_yestlow.Value    = m_todayslow.Value;
                m_yestclose.Value  = Bars.Close[1];
                m_todaysopen.Value = Bars.Open[0];
                m_todayshigh.Value = Bars.High[0];
                m_todayslow.Value  = Bars.Low[0];
            }
            else
            {
                if (PublicFunctions.DoubleGreater(Bars.High[0], m_todayshigh.Value))
                {
                    m_todayshigh.Value = Bars.High[0];
                }
                if (PublicFunctions.DoubleLess(Bars.Low[0], m_todayslow.Value))
                {
                    m_todayslow.Value = Bars.Low[0];
                }
            }

            if (m_counter.Value >= 2)
            {
                Plot1.Set(0, m_yestopen.Value);
                Plot2.Set(0, m_yesthigh.Value);
                Plot3.Set(0, m_yestlow.Value);
                Plot4.Set(0, m_yestclose.Value);
            }
        }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution < EResolution.Day || EResolution.Volume == resolution ||
                EResolution.Second == resolution || resolution > EResolution.Quarter)
            {
                if (Bars.Time[0].Date != Bars.Time[1].Date)
                {
                    m_highesthi.Value = Bars.High[0];
                }
                else
                {
                    if (PublicFunctions.DoubleGreater(Bars.High[0], m_highesthi.Value))
                    {
                        Plot1.Set(0, Bars.High[0]);
                        Alerts.Alert();
                        m_highesthi.Value = Bars.High[0];
                    }
                }
            }
        }
Exemple #26
0
        //* -----------------------------------------------------------------------*
        /// <summary>
        /// <para>解像度を自動で検索し、設定します。</para>
        /// <para>Windowsでは最小に、XBOX360では最大に設定します。</para>
        /// </summary>
        ///
        /// <param name="gdm">グラフィック デバイスの構成・管理クラス。</param>
        /// <param name="bWide">ワイド画面を優先して検索するかどうか。</param>
        /// <param name="bFullScreen">全画面モードにするかどうか。</param>
        /// <returns>
        /// 自動設定の結果が現在の設定と異なり、かつ設定完了した場合、<c>true</c>。
        /// </returns>
        public static bool applyScreenChange(GraphicsDeviceManager gdm, bool bWide, bool bFullScreen)
        {
            bool        bResult    = false;
            EResolution resolution = CResolution.getMinResolution(bWide);

            if (bFullScreen)
            {
                resolution = CResolution.getPrev(CResolution.getMaxResolution(bWide));
            }
            Rectangle screenRect = resolution.toRect();

            bResult = (gdm.IsFullScreen != bFullScreen) ||
                      (gdm.PreferredBackBufferWidth != screenRect.Width) ||
                      (gdm.PreferredBackBufferHeight != screenRect.Height);
            if (bResult)
            {
                gdm.IsFullScreen              = bFullScreen;
                gdm.PreferredBackBufferWidth  = screenRect.Width;
                gdm.PreferredBackBufferHeight = screenRect.Height;
                gdm.ApplyChanges();
            }
            return(bResult);
        }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution > EResolution.Quarter)
            {
                return;
            }

            if ((Bars.Time[0].Year != Bars.Time[1].Year))
            {
                m_highesthi.Value = Bars.High[0];
            }
            else
            {
                if (PublicFunctions.DoubleGreater(Bars.High[0], m_highesthi.Value))
                {
                    Plot1.Set(0, Bars.High[0]);
                    Alerts.Alert();
                    m_highesthi.Value = Bars.High[0];
                }
            }
        }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution == EResolution.Year ||
                resolution == EResolution.Quarter || resolution == EResolution.Month)
            {
                return;
            }

            if ((Bars.Time[0].Month != Bars.Time[1].Month))
            {
                m_lowestlo.Value = Bars.Low[0];
            }
            else
            {
                if (PublicFunctions.DoubleLess(Bars.Low[0], m_lowestlo.Value))
                {
                    Plot1.Set(0, Bars.Low[0]);
                    Alerts.Alert();
                    m_lowestlo.Value = Bars.Low[0];
                }
            }
        }
Exemple #29
0
 //* -----------------------------------------------------------------------*
 /// <summary>コンストラクタ。</summary>
 ///
 /// <param name="source">変換元の解像度。</param>
 /// <param name="destination">変換先の解像度。</param>
 public CResolutionSqueeze(EResolution source, EResolution destination)
     : this(source.toRect(), destination.toRect())
 {
 }
        protected override void CalcBar()
        {
            EResolution resolution = Bars.Info.Resolution.Type;

            if (resolution == EResolution.Quarter ||
                EResolution.Week <= resolution && resolution <= EResolution.Year)
            {
                return;
            }

            if (Bars.Time[0].Date != Bars.Time[1].Date)
            {
                m_counter.Value = (m_counter.Value + 1);
                var m_yesthigh  = m_todayshigh.Value;
                var m_yestlow   = m_todayslow.Value;
                var m_yestclose = Bars.Close[1];
                m_todayshigh.Value = Bars.High[0];
                m_todayslow.Value  = Bars.Low[0];
                m_pp.Value         = (((m_yesthigh + m_yestlow)
                                       + m_yestclose)
                                      / ((3)));
                m_r1.Value = ((m_pp.Value * 2)
                              - m_yestlow);
                m_r2.Value = ((m_pp.Value + m_yesthigh)
                              - m_yestlow);
                m_r3.Value = ((m_r2.Value + m_yesthigh)
                              - m_yestlow);
                m_s1.Value = ((m_pp.Value * 2)
                              - m_yesthigh);
                m_s2.Value = ((m_pp.Value - m_yesthigh)
                              + m_yestlow);
                m_s3.Value = ((m_s2.Value - m_yesthigh)
                              + m_yestlow);
            }
            else
            {
                if (PublicFunctions.DoubleGreater(Bars.High[0], m_todayshigh.Value))
                {
                    m_todayshigh.Value = Bars.High[0];
                }
                if (PublicFunctions.DoubleLess(Bars.Low[0], m_todayslow.Value))
                {
                    m_todayslow.Value = Bars.Low[0];
                }
            }
            if (m_counter.Value >= 2)
            {
                if ((plot_5or7 == 7))
                {
                    Plot1.Set(0, m_r3.Value);
                }
                Plot2.Set(0, m_r2.Value);
                Plot3.Set(0, m_r1.Value);
                Plot4.Set(0, m_pp.Value);
                Plot5.Set(0, m_s1.Value);
                Plot6.Set(0, m_s2.Value);
                if ((plot_5or7 == 7))
                {
                    Plot7.Set(0, m_s3.Value);
                }
            }
        }
Exemple #31
0
		/// <summary>
		///   初始化
		/// </summary>
		/// <param name="type">週期定義類型</param>
		/// <param name="size">週期大小</param>
		public Resolution(EResolution type, int size) {
			__cType = type;
			__iSize = size;
			
			__iRate = 1;
			__dUnit = 1;
			__bModulo = false;
			__iSessionCount = 0;
			__iTotalSeconds = Convert(type, size);
			__cEndTime = TimeSpan.Zero;
			__cStartTime = TimeSpan.Zero;
		}
 //* -----------------------------------------------------------------------*
 /// <summary>コンストラクタ。</summary>
 ///
 /// <param name="r">解像度定数</param>
 public CResolutionAspectFix(EResolution r)
     : base(r)
 {
 }