AntRobot/models/PositionInfo.mqh
super.admin 9174d587ba convert
2025-05-30 14:40:14 +02:00

73 lines
3.2 KiB
MQL5

//+------------------------------------------------------------------+
//| PositionInfo.mqh |
//| Copyright 2021, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
struct PositionInfo {
long ticket;
double position;
double amplitude;
double lotage;
double riskInMoney;
int periodInBars;
datetime openPositionTime;
int signal;
double takeProfit;
double takeProfitLevel;
double stopLoss;
double stopLossLevel;
};
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool exitPositionByPeriodInBars(PositionInfo &positionsInfoParam[], int index) {
return positionsInfoParam[index].amplitude != 0;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool madeTradeInPosition(PositionInfo &positionsInfoParam[], int index) {
return positionsInfoParam[index].ticket != -1;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
PositionInfo createEmptyPosition(datetime initTimeParam) {
datetime currentTime = initTimeParam;
return createPositionInfo(-1,0,0,0,0,0,currentTime,0,0,0,0,0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
PositionInfo createPositionInfo(long ticket, double position,
double amplitude,
double lotage,
double riskInMoneyParam,
int periodInBarsParam,
datetime openPositionTime,
int signal,
double takeProfit,
double takeProfitLevel,
double stopLoss,
double stopLossLevel) {
PositionInfo positionInfo;
positionInfo.ticket = ticket;
positionInfo.amplitude = amplitude;
positionInfo.openPositionTime = openPositionTime;
positionInfo.lotage = lotage;
positionInfo.riskInMoney = riskInMoneyParam;
positionInfo.periodInBars = periodInBarsParam;
positionInfo.position = position;
positionInfo.signal = signal;
positionInfo.stopLoss = stopLoss;
positionInfo.stopLossLevel = stopLossLevel;
positionInfo.takeProfit = takeProfit;
positionInfo.takeProfitLevel = takeProfitLevel;
return positionInfo;
}