//* -----------------------------------------------------------------------* /// <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"); } } } }
//* -----------------------------------------------------------------------* /// <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(); }
//* -----------------------------------------------------------------------* /// <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))); }
//* -----------------------------------------------------------------------* /// <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]); }
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); }
//* -----------------------------------------------------------------------* /// <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); }
/// <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)); }
//* -----------------------------------------------------------------------* /// <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)); }
// 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(); } }
//* ────________________________________* //* 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(); }
//* -----------------------------------------------------------------------* /// <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); }
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; }
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(); } }
//* ────────────-_______________________* //* 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]; }
/// <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); }
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]; } } } }
//* -----------------------------------------------------------------------* /// <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]; } } }
//* -----------------------------------------------------------------------* /// <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); } } }
//* -----------------------------------------------------------------------* /// <summary>コンストラクタ。</summary> /// /// <param name="r">解像度定数</param> public CResolutionAspectFix(EResolution r) : base(r) { }