using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
using System.Windows.Forms;
using System.Threading;
using System.Linq;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.FullAccess)]
public class SUCCES3 : Indicator
{
[Parameter("Symbols", DefaultValue = "XAUUSD,USDCHF,EURUSD,USDJPY,AUDUSD,NZDUSD,USDCAD,GBPUSD,GBPJPY,GBPAUD,GBPCAD,GBPCHF,GBPNZD,EURGBP,EURNZD,EURAUD,EURJPY,EURCHF,EURCAD,NZDCHF,NZDJPY,NZDCAD,AUDCAD,AUDCHF,AUDJPY,AUDNZD,CADCHF,CADJPY,CHFJPY")]
public string SymbolsText { get; set; }
public SimpleMovingAverage sma50TF2;
public bool SCUTF2;
public System.Drawing.Color CL;
public string TT;
private Form1 _f1;
private Thread _thread;
protected override void Initialize()
{
#region
_f1 = new Form1();
_f1.Shown += _f1_Shown;
_thread = new Thread(() => _f1.ShowDialog());
_thread.SetApartmentState(ApartmentState.STA);
_thread.Start();
#endregion
}
private void _f1_Shown(object sender, EventArgs e)
{
_f1.Text = "SETUP";
DoSomething();
}
public void DoSomething()
{
_f1.comboBox1.Items.AddRange(new TimeFrame[]
{
TimeFrame.Monthly,
TimeFrame.Weekly,
TimeFrame.Daily,
TimeFrame.Hour12,
TimeFrame.Hour8,
TimeFrame.Hour6,
TimeFrame.Hour4,
TimeFrame.Hour3,
TimeFrame.Hour2,
TimeFrame.Hour,
TimeFrame.Minute45,
TimeFrame.Minute30,
TimeFrame.Minute15,
TimeFrame.Minute10,
TimeFrame.Minute5,
TimeFrame.Minute
});
var TTT = _f1.comboBox1.Items.Cast<TimeFrame>().ToArray();
var symbolNames = SymbolsText.Split(new[]
{
','
}).Select(s => s.Trim()).Where(s => string.IsNullOrWhiteSpace(s) == false).ToArray();
foreach (var SN in symbolNames)
{
foreach (var TFFF in TTT)
{
var PDH1 = MarketData.GetBars(TFFF, SN);
sma50TF2 = Indicators.SimpleMovingAverage(PDH1.ClosePrices, 50);
var buyrangeTF2 = (((3 * (PDH1.HighPrices.Last(1) - PDH1.LowPrices.Last(1))) / 4) + PDH1.LowPrices.Last(1));
var sellrangeTF2 = (PDH1.HighPrices.Last(1) - ((3 * (PDH1.HighPrices.Last(1) - PDH1.LowPrices.Last(1))) / 4));
{
if (PDH1.ClosePrices.Last(1) > sma50TF2.Result.Last(1) && ((PDH1.LowPrices.Last(2) < PDH1.LowPrices.Last(3) && PDH1.LowPrices.Last(2) < PDH1.LowPrices.Last(4) && PDH1.LowPrices.Last(2) < PDH1.LowPrices.Last(5) && PDH1.LowPrices.Last(2) < PDH1.LowPrices.Last(6) && PDH1.LowPrices.Last(2) < PDH1.LowPrices.Last(7)) || (PDH1.LowPrices.Last(1) < PDH1.LowPrices.Last(2) && PDH1.LowPrices.Last(1) < PDH1.LowPrices.Last(3) && PDH1.LowPrices.Last(1) < PDH1.LowPrices.Last(4) && PDH1.LowPrices.Last(1) < PDH1.LowPrices.Last(5) && PDH1.LowPrices.Last(1) < PDH1.LowPrices.Last(6))))
{
SCUTF2 = true;
CL = System.Drawing.Color.Blue;
}
else if (PDH1.ClosePrices.Last(1) < sma50TF2.Result.Last(1) && ((PDH1.HighPrices.Last(2) > PDH1.HighPrices.Last(3) && PDH1.HighPrices.Last(2) > PDH1.HighPrices.Last(4) && PDH1.HighPrices.Last(2) > PDH1.HighPrices.Last(5) && PDH1.HighPrices.Last(2) > PDH1.HighPrices.Last(6) && PDH1.HighPrices.Last(2) > PDH1.HighPrices.Last(7)) || (PDH1.HighPrices.Last(1) > PDH1.HighPrices.Last(2) && PDH1.HighPrices.Last(1) > PDH1.HighPrices.Last(3) && PDH1.HighPrices.Last(1) > PDH1.HighPrices.Last(4) && PDH1.HighPrices.Last(1) > PDH1.HighPrices.Last(5) && PDH1.HighPrices.Last(1) > PDH1.HighPrices.Last(6))))
{
SCUTF2 = true;
CL = System.Drawing.Color.Red;
}
else
{
SCUTF2 = false;
CL = System.Drawing.Color.Empty;
}
}
{
if (TFFF == TimeFrame.Monthly)
TT = "M";
else if (TFFF == TimeFrame.Weekly)
TT = "W";
else if (TFFF == TimeFrame.Daily)
TT = "D";
else if (TFFF == TimeFrame.Hour12)
TT = "H12";
else if (TFFF == TimeFrame.Hour8)
TT = "H8";
else if (TFFF == TimeFrame.Hour6)
TT = "H6";
else if (TFFF == TimeFrame.Hour4)
TT = "H4";
else if (TFFF == TimeFrame.Hour3)
TT = "H3";
else if (TFFF == TimeFrame.Hour2)
TT = "H2";
else if (TFFF == TimeFrame.Hour)
TT = "H";
else if (TFFF == TimeFrame.Minute45)
TT = "M45";
else if (TFFF == TimeFrame.Minute30)
TT = "M30";
else if (TFFF == TimeFrame.Minute15)
TT = "M15";
else if (TFFF == TimeFrame.Minute10)
TT = "M10";
else if (TFFF == TimeFrame.Minute5)
TT = "M5";
else if (TFFF == TimeFrame.Minute)
TT = "M1";
}
if (SCUTF2 == true)
{
var BTN1 = new System.Windows.Forms.Button
{
Text = SN + " " + TT.ToString(),
ForeColor = CL,
AutoSize = true,
AutoSizeMode = AutoSizeMode.GrowAndShrink,
FlatStyle=FlatStyle.Flat
};
_f1.comboBox1.SelectedIndexChanged += (d, l) =>
{
var tfst = (TimeFrame)_f1.comboBox1.SelectedItem;
if (TFFF == tfst)
BTN1.Visible = true;
else
BTN1.Visible = false;
};
{
if (SN == SymbolName && TFFF == TimeFrame)
BTN1.Enabled = false;
else
BTN1.Enabled = true;
}
BTN1.Click += (x, y) => { Chart.TryChangeTimeFrameAndSymbol(TFFF, SN); };
_f1.flowLayoutPanel1.Controls.Add(BTN1);
if (BTN1.Enabled == false)
BTN1.BackColor = System.Drawing.Color.LightGreen;
}
}
}
}
public override void Calculate(int index)
{
}
}
}