Information
Username: | drkhashix |
Member since: | 12 Feb 2023 |
Last login: | 15 Oct 2024 |
Status: | Active |
Activity
Where | Created | Comments |
---|---|---|
Algorithms | 26 | 20 |
Forum Topics | 2 | 1 |
Jobs | 0 | 1 |
About
Contact number: +989128702206
email : KHASHAYAR.NEZAMI@GMAIL.COM
DRKHASHIX@DRKHASHIX.COM
Instagram : KHASHAYARNEZAMI
Last Algorithm Comments
I can solve the problem of the Nekert robot working on multiple currencies in two days. Anyone who wants to solve the problem, send a message. Also, it is better to open the transactions manually on a daily basis, and the robot should only do capital management. Anyone who wants to be a sponsor can contact me. email: khashayar.nezami@gmail.com
This robot utilizes the cAlgo.API library for technical analysis and trade execution, without the need for popular libraries like Accord.NET or ML.NET. Its capabilities are limited to financial trading and risk management, relying on technical analysis indicators such as RSI and moving averages, along with the ability to assess candle power and divergences. It does not directly employ artificial intelligence algorithms such as machine learning and therefore does not make more advanced decisions. The robot does not learn or improve with experience but operates on fixed rules. It's named "AI Trader" with the expectation that, if artificial intelligence were present, it would trade similarly to this robot, yet in the hope of a future that may remain a dream.
I have added a new update for this indicator, it also shows the time and spread, and you can specify the right position for the display, since there are no likes or thank in messages, I will work less on this indicator.
I hope you can continue to work until the trading robot is in the support and resistance, it will do the transactions reveral in the zone and only when these areas are broken robot open breakout pos, I am not very familiar with the indicator algorithm. buo i hop you can do it.
using System;
using cAlgo.API;
namespace cAlgo.Robots
{
[Robot("DRKHASHIX", AccessRights = AccessRights.None)]
public class DRKHASHIX : Robot
{
[Parameter("Lot Size", Group = "Volume", DefaultValue = 0.01, MinValue = 0.00001, MaxValue = 100, Step = 0.00001)]
public double LotSize { get; set; }
[Parameter("Stop Loss (pips)", Group = "Risk Management", DefaultValue = 50, MinValue = 1)]
public int StopLossInPips { get; set; }
[Parameter("Take Profit (pips)", Group = "Risk Management", DefaultValue = 50, MinValue = 1)]
public int TakeProfitInPips { get; set; }
[Parameter("Period", DefaultValue = 10, MinValue = 3)]
public int Period { get; set; }
[Parameter("Buy", Group = "Colors", DefaultValue = "DodgerBlue")]
public Color BuyColor { get; set; }
[Parameter("Sell", Group = "Colors", DefaultValue = "Red")]
public Color SellColor { get; set; }
private const string Sign = "TBO";
private TrendLevel LastBreakOutBuy { get; set; }
private TrendLevel LastBreakOutSell { get; set; }
private int LastIndex { get; set; }
private bool isPositionOpen = false;
protected override void OnStart()
{
LastBreakOutBuy = null;
LastBreakOutSell = null;
LastIndex = -1;
}
protected override void OnBar()
{
int index = MarketSeries.Close.Count - 1;
int signal = SupportResistanceSignal(index);
if (!isPositionOpen && signal != -1)
{
TradeType tradeType = (signal == 0) ? TradeType.Buy : TradeType.Sell;
double volume = Symbol.NormalizeVolumeInUnits(Symbol.QuantityToVolumeInUnits(LotSize));
var position = ExecuteMarketOrder(tradeType, Symbol, volume, "SupportResistanceBot", StopLossInPips, TakeProfitInPips);
if (position != null)
{
isPositionOpen = true;
}
}
}
protected override void OnPositionClosed(Position position)
{
isPositionOpen = false;
}
private int SupportResistanceSignal(int index)
{
if (index < Period) return -1;
int A = index - Period;
int B = index;
if (LastBreakOutBuy == null)
{
if (ReadyResistance(index, Period))
LastBreakOutBuy = new TrendLevel
{
Name = string.Format("{0}-Buy-{1}", Sign, A),
IndexA = A,
IndexB = B,
Price = Bars.HighPrices[A]
};
}
if (LastBreakOutSell == null)
{
if (ReadySupport(index, Period))
LastBreakOutSell = new TrendLevel
{
Name = string.Format("{0}-Sell-{1}", Sign, A),
IndexA = A,
IndexB = B,
Price = Bars.LowPrices[A]
};
}
if (LastBreakOutBuy != null) LastBreakOutBuy.IndexB = B;
if (LastBreakOutSell != null) LastBreakOutSell.IndexB = B;
DrawTrendLevel(LastBreakOutBuy, BuyColor);
DrawTrendLevel(LastBreakOutSell, SellColor);
int signal = -1;
if (LastIndex != index)
{
LastIndex = index;
signal = OnBarforindicator(index);
}
return signal;
}
private int OnBarforindicator(int index)
{
int B = index - 1;
int C = index - 2;
int signal = -1;
if (LastBreakOutBuy != null)
{
if (Bars.ClosePrices[B] > LastBreakOutBuy.Price)
{
LastBreakOutBuy.IndexB = B;
DrawTrendLevel(LastBreakOutBuy, BuyColor);
if (LastBreakOutSell != null)
{
int vPeriod = LastBreakOutBuy.IndexB - LastBreakOutBuy.IndexA - 1;
int newindexA = C;
for (int i = 0; i < vPeriod; i++)
{
if (Bars.LowPrices[C - i] < Bars.LowPrices[newindexA]) newindexA = C - i;
}
if (Bars.LowPrices[newindexA] > LastBreakOutSell.Price)
{
LastBreakOutSell = new TrendLevel
{
Name = string.Format("{0}-Sell-{1}", Sign, newindexA),
IndexA = newindexA,
IndexB = index,
Price = Bars.LowPrices[newindexA]
};
DrawTrendLevel(LastBreakOutSell, SellColor);
signal = 1; // Sell signal
}
}
LastBreakOutBuy = null;
}
}
if (LastBreakOutSell != null)
{
if (Bars.ClosePrices[B] < LastBreakOutSell.Price)
{
LastBreakOutSell.IndexB = B;
DrawTrendLevel(LastBreakOutSell, SellColor);
if (LastBreakOutBuy != null)
{
int vPeriod = LastBreakOutSell.IndexB - LastBreakOutSell.IndexA - 1;
int newindexA = C;
for (int i = 0; i < vPeriod; i++)
{
if (Bars.HighPrices[C - i] > Bars.HighPrices[newindexA]) newindexA = C - i;
}
if (Bars.HighPrices[newindexA] < LastBreakOutBuy.Price)
{
LastBreakOutBuy = new TrendLevel
{
Name = string.Format("{0}-Buy-{1}", Sign, newindexA),
IndexA = newindexA,
IndexB = index,
Price = Bars.HighPrices[newindexA]
};
DrawTrendLevel(LastBreakOutBuy, BuyColor);
signal = 0; // Buy signal
}
}
LastBreakOutSell = null;
}
}
return signal;
}
private void DrawTrendLevel(TrendLevel tLine, Color color)
{
if (tLine == null) return;
Chart.DrawTrendLine(tLine.Name, tLine.IndexA, tLine.Price, tLine.IndexB, tLine.Price, color, 1);
}
private bool ReadyResistance(int index, int period)
{
bool result = true;
for (int i = 0; i < period; i++)
{
if (Bars.ClosePrices[index - i] > Bars.HighPrices[index - period])
{
result = false;
break;
}
}
return result;
}
private bool ReadySupport(int index, int period)
{
bool result = true;
for (int i = 0; i < period; i++)
{
if (Bars.ClosePrices[index - i] < Bars.LowPrices[index - period])
{
result = false;
break;
}
}
return result;
}
private class TrendLevel
{
public string Name { get; set; }
public int IndexA { get; set; }
public int IndexB { get; set; }
public double Price { get; set; }
}
}
}
It is an excellent card. It seems that this method is good for reveral transactions until breakout so that orders can be placed at those points.
پارامتر های اخر رو خوب متوجه نشدم کد را ساده تر مینوشتی بهتر نبود
If you have an idea to update this robot, please provide and guide how to upgrade the robot
Why do you love SMA so much?
If anyone has an idea to improve the bot, please let me know in the messages
parameter not bad: 3 50 3 1.5
In order, i.e. 3 candles in a row among the last 50 candles, if the size of those 3 candles is more than the average, a signal will be placed according to the formula 1.5
"RSI should be set to 70 and 30, and they should be consistent with each other. The observation is that you have based the settings on past profitability, which might pose a problem in the future."
Oh man, this is very complicated. Please explain a little more about the added lines and its usage
For manual trading, it doesn't look bad by combining it with the smart money block order strategy, for example, when it gets saturated at the block order points and the candles change color at that point,and rsi say yes
can you see this image https://ibb.co/zXWrkR2
but it's a pity that there is no smart money indicator in CTrader,
what is the signal code for this part of cod
if (noc404Signal.LastValue == Up Arrow)
{
return 0;
}
else if (noc404Signal.LastValue == Down Arrow)
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.API.Requests;
namespace cAlgo.Robots
{
[Robot("DRKHASHIX", AccessRights = AccessRights.None)]
public class DRKHASHIX : Robot
{
[Parameter("Lot Size", Group = "Volume", DefaultValue = 0.01, MinValue = 0.00001, MaxValue = 100, Step = 0.00001)]
public double LotSize { get; set; }
[Parameter("Stop Loss (pips)", Group = "Risk Management", DefaultValue = 20, MinValue = 1)]
public int StopLossInPips { get; set; }
[Parameter("Take Profit (pips)", Group = "Risk Management", DefaultValue = 40, MinValue = 1)]
public int TakeProfitInPips { get; set; }
private bool isPositionOpen = false;
private IndicatorDataSeries noc404Signal;
protected override void OnStart()
{
noc404Signal = CreateDataSeries();
}
protected override void OnBar()
{
int signal = GetNOC404Signal();
if (!isPositionOpen && signal != -1)
{
TradeType tradeType = (signal == 0) ? TradeType.Buy : TradeType.Sell;
double volume = Symbol.NormalizeVolumeInUnits(Symbol.QuantityToVolumeInUnits(LotSize));
var position = ExecuteMarketOrder(tradeType, Symbol, volume, "SupportResistanceBot", StopLossInPips, TakeProfitInPips);
if (position != null)
{
isPositionOpen = true;
}
}
}
protected override void OnPositionClosed(Position position)
{
isPositionOpen = false;
}
private int GetNOC404Signal()
{
int lastBarIndex = MarketSeries.Close.Count - 2;
int prevBarIndex = lastBarIndex - 1;
if (noc404Signal.LastValue == Up Arrow)
{
return 0;
}
else if (noc404Signal.LastValue == Down Arrow)
{
return 1;
}
return -1;
}
}
}
can you buld robot buy this looks when 3 signal down the robot open one pos whit stoplos and tp
can you do somthing to give signal for robot
Hello world … I hope you enjoy the robot If you have any questions, I am here to answer your questions. drkhashix i love you all
good morning
i want to chose TradeType buy and sell sobody help plz
[Parameter]
public TradeType TradeType { get; set; }
how can emake this to work
or
bater chose pos bay sma for trent
Thank you very much, it would be better if you could make it a little more beautiful and add some themes