Hi coders,
This code is to get the TP, SL and Gain/Risk ratio from opened Positions. It works in Hedge but not in Netting accounts.
Can anybody help me?
Thank you in advance!
int pos_total = PositionsTotal();
if (pos_total > 0)
{
for(int pos = pos_total - 1; pos >= 0; pos--)
{
ulong PosTicket = PositionGetTicket(pos);
if(PositionSelectByTicket(PosTicket) && PositionGetString(POSITION_SYMBOL) == _Symbol)
{
long PosType = PositionGetInteger(POSITION_TYPE);
double PosSL = PositionGetDouble(POSITION_SL);
double PosTP = PositionGetDouble(POSITION_TP);
PosOpenPrice = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),_Digits);
if(PosType == POSITION_TYPE_BUY)
{
GainRisk = (PosTP - PosOpenPrice) / (PosOpenPrice - PosSL);
TP = PosTP;
SL = PosSL;
}
...
Try it:
int pos_total=PositionsTotal(); if(pos_total>0) { for(int pos=pos_total-1; pos>=0; pos--) { /*ulong PosTicket=*/PositionGetTicket(pos); if(/*PositionSelectByTicket(PosTicket) && */PositionGetString(POSITION_SYMBOL)==_Symbol) { long PosType = PositionGetInteger(POSITION_TYPE); double PosSL = PositionGetDouble(POSITION_SL); double PosTP = PositionGetDouble(POSITION_TP); PosOpenPrice = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),_Digits); if(PosType==POSITION_TYPE_BUY) { GainRisk=(PosTP-PosOpenPrice)/(PosOpenPrice-PosSL); TP = PosTP; SL = PosSL; } } } }
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi coders,
This code is to get the TP, SL and Gain/Risk ratio from opened Positions. It works in Hedge but not in Netting accounts.
Can anybody help me?
Thank you in advance!
int pos_total = PositionsTotal();
if (pos_total > 0)
{
for(int pos = pos_total - 1; pos >= 0; pos--)
{
ulong PosTicket = PositionGetTicket(pos);
if(PositionSelectByTicket(PosTicket) && PositionGetString(POSITION_SYMBOL) == _Symbol)
{
long PosType = PositionGetInteger(POSITION_TYPE);
double PosSL = PositionGetDouble(POSITION_SL);
double PosTP = PositionGetDouble(POSITION_TP);
PosOpenPrice = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),_Digits);
if(PosType == POSITION_TYPE_BUY)
{
GainRisk = (PosTP - PosOpenPrice) / (PosOpenPrice - PosSL);
TP = PosTP;
SL = PosSL;
}
...