Skip to content

Commit

Permalink
Merge pull request AlexWan#233 from UnderMind0x41/master
Browse files Browse the repository at this point in the history
BotTabSimple signal type fix
  • Loading branch information
AlexWan authored Jun 15, 2021
2 parents eae8988 + 7dec7e4 commit 94400f0
Showing 1 changed file with 79 additions and 3 deletions.
82 changes: 79 additions & 3 deletions project/OsEngine/OsTrader/Panels/Tab/BotTabSimple.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1352,7 +1352,7 @@ public Position BuyAtAceberg(decimal volume, decimal price, int orderCount)
/// </summary>
/// <param name="volume">volume / объём позиции</param>
/// <param name="price">order price / цена выставляемой заявки</param>
/// /// <param name="orderCount">iceberg orders count / количество ордеров в айсберге</param>
/// <param name="orderCount">iceberg orders count / количество ордеров в айсберге</param>
/// <param name="signalType">open position signal name / название сигнала для входа. Будет записано в свойство позиции: SignalTypeOpen</param>
public Position BuyAtAceberg(decimal volume, decimal price, int orderCount, string signalType)
{
Expand Down Expand Up @@ -1520,6 +1520,19 @@ public void BuyAtMarketToPosition(Position position, decimal volume)
}
}

/// <summary>
/// add new order to exist position at market /
/// добавить в позицию Лонг новую заявку по маркету
/// </summary>
/// <param name="position">position to which the order will be added / позиция к которой будет добавлена заявка</param>
/// <param name="volume">volume / объём</param>
/// <param name="signalType">open position signal name / название сигнала для входа. Будет записано в свойство позиции: SignalTypeOpen</param>
public void BuyAtMarketToPosition(Position position, decimal volume, string signalType)
{
position.SignalTypeOpen = signalType;
BuyAtMarketToPosition(position, volume);
}

/// <summary>
/// add new order to Long position at iceberg /
/// добавить в позицию Лонг новую заявку айсберг
Expand Down Expand Up @@ -2122,6 +2135,31 @@ public void CloseAllAtMarket()
}
}

/// <summary>
/// close all positions at market /
/// закрыть все позиции по рынку
/// </summary>
/// <param name="signalType">close position signal name / название сигнала для выхода. Будет записан в свойство позиции: SignalTypeClose</param>
public void CloseAllAtMarket(string signalType)
{
try
{
List<Position> positions = _journal.OpenPositions;

if (positions != null)
{
for (int i = 0; i < positions.Count; i++)
{
CloseAtMarket(positions[i], positions[i].OpenVolume, signalType);
}
}
}
catch (Exception error)
{
SetNewLogMessage(error.ToString(), LogMessageType.Error);
}
}

/// <summary>
/// close a position at any price /
/// закрыть позицию по любой цене
Expand Down Expand Up @@ -2181,7 +2219,7 @@ public void CloseAtMarket(Position position, decimal volume)
/// </summary>
/// <param name="position">position to be closed / позиция которую будем закрывать</param>
/// <param name="volume">volume / объём нужный к закрытию</param>
/// <param name="signalType">close position signal name / название сигнала для входа. Будет записано в свойство позиции: SignalTypeOpen</param>
/// <param name="signalType">close position signal name / название сигнала для выхода. Будет записан в свойство позиции: SignalTypeClose</param>
public void CloseAtMarket(Position position, decimal volume, string signalType)
{
position.SignalTypeClose = signalType;
Expand Down Expand Up @@ -2284,7 +2322,7 @@ public void CloseAtAceberg(Position position, decimal priceLimit, decimal volume
/// <param name="priceLimit">order price / цена ордера</param>
/// <param name="volume">volume required to close / объём нужный к закрытию</param>
/// <param name="orderCount">iceberg orders count / количество ордеров для айсберга</param>
/// <param name="signalType">close position signal name / название сигнала для входа. Будет записано в свойство позиции: SignalTypeOpen</param>
/// <param name="signalType">close position signal name / название сигнала для выхода. Будет записано в свойство позиции: SignalTypeClose</param>
public void CloseAtAceberg(Position position, decimal priceLimit, decimal volume, int orderCount, string signalType)
{
position.SignalTypeClose = signalType;
Expand Down Expand Up @@ -2409,6 +2447,33 @@ public void CloseAllOrderInSystem()
}
}

/// <summary>
/// close all robot open orders from the system /
/// отозвать все открытые роботом ордера из системы
/// </summary>
/// <param name="signalType">close position signal name / название сигнала для выхода. Будет записано в свойство позиции: SignalTypeClose</param>
public void CloseAllOrderInSystem(string signalType)
{
try
{
List<Position> positions = _journal.OpenPositions;

if (positions == null)
{
return;
}

for (int i = 0; i < positions.Count; i++)
{
CloseAllOrderToPosition(positions[i], signalType);
}
}
catch (Exception error)
{
SetNewLogMessage(error.ToString(), LogMessageType.Error);
}
}

/// <summary>
/// withdraw all orders from the system associated with this transaction /
/// отозвать все ордера из системы, связанные с этой сделкой
Expand Down Expand Up @@ -2455,6 +2520,17 @@ public void CloseAllOrderToPosition(Position position)
}
}

/// <summary>
/// withdraw all orders from the system associated with this transaction /
/// отозвать все ордера из системы, связанные с этой сделкой
/// </summary>
/// <param name = "signalType" > close position signal name / название сигнала для выхода. Будет записан в свойство позиции: SignalTypeClose</param>
public void CloseAllOrderToPosition(Position position, string signalType)
{
position.SignalTypeClose = signalType;
CloseAllOrderToPosition(position);
}

/// <summary>
/// withdraw order /
/// отозвать ордер
Expand Down

0 comments on commit 94400f0

Please sign in to comment.