ok, go a head.
Good luck!
Hi,
This is my idea. I want make moving or dynamic taking profit if pending order fill...
PO=pending order, TP=taking profit
Example:
PO3---------------------------- = PO3 trigger, all TP at TP3
PO2---------------------------- = PO2 trigger, all TP at TP2
TP3++++++++++++++++
PO1---------------------------- = PO1 trigger, all TP at TP1
TP2++++++++++++++++
TP1++++++++++++++++
Maybe you can look to my coding....
Still not working on modify taking profit..
All previous value stored in array.....
Thanks in advanced.....
--------------------
for(i=0;i<ArraySize(OpenPriceBuy);i++)
{
int minValueIdx=ArrayMinimum(OpenPriceBuy,WHOLE_ARRAY,0);
if(MarketInfo(Symbol(),MODE_BID)<= minValueIdx)
{
//--- modify order and exit
if(!OrderModify(buyticket[i],0,0,TPPriceBuy[i],0,Red))
Print("OrderModify error ",GetLastError());
OpenPriceBuy[i] = OpenPriceBuy[i+1];
}
}
----------------------------------
if(MarketInfo(Symbol(),MODE_BID)<= minValueIdx)
-
Play videoPlease edit your post.
For large amounts of code, attach it.
- Why are you using a function all instead of just the predefined variable Bid?
- Bid is a double (1.2345) Array indexes are int (0, 1, 2, 3...) What does price <= index possibly mean?
for(i=0;i<ArraySize(OpenPriceBuy);i++){ : OpenPriceBuy[i] = OpenPriceBuy[i+1];
What happens when i is the last array element [ArraySize(OpenPriceBuy) - 1]?
Thanks all...
I'll update latest code... ASAP...
fuh....
Now i had ordermodify error 1
for(int cnt=0 ;cnt<OrdersTotal();cnt++)
{
bool resulttemp = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
int maxValueIdx=ArrayMaximum(OpenPriceBuy,WHOLE_ARRAY,0);
if(MarketInfo(Symbol(),MODE_BID) == OpenPriceBuy[maxValueIdx])
{
j = maxValueIdx+1;
if(j>ArraySize(OpenPriceBuy))
{
j = ArraySize(OpenPriceBuy)-1;
}
//Modified TP only for open buy and pending buy (buy limit)
if(OrdersTotal() > 0 && (OrderType() == OP_BUY || OrderType()== OP_BUYLIMIT))
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TPPriceBuy[j],OrderExpiration(),Red))
{ Print("Buy OrderModify error :",GetLastError()); } else {Print(TPPriceBuy[maxValueIdx]," modified to : ",TPPriceBuy[j]);}
TPPriceBuy[maxValueIdx] = TPPriceBuy[ArraySize(OpenPriceBuy)-1];
OpenPriceBuy[maxValueIdx] = OpenPriceBuy[ArraySize(OpenPriceBuy)-1];
}
}
}
ok... now i see more beautiful.....
for(int cnt=0 ;cnt<OrdersTotal();cnt++) { bool resulttemp = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); int maxValueIdx=ArrayMaximum(OpenPriceBuy,WHOLE_ARRAY,0); if(MarketInfo(Symbol(),MODE_BID) == OpenPriceBuy[maxValueIdx]) { j = maxValueIdx+1; if(j>ArraySize(OpenPriceBuy)) { j = ArraySize(OpenPriceBuy)-1; } //Modified TP only for open buy and pending buy (buy limit) if(OrdersTotal() > 0 && (OrderType() == OP_BUY || OrderType()== OP_BUYLIMIT)) { if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TPPriceBuy[j],OrderExpiration(),Red)) { Print("Buy OrderModify error :",GetLastError()); } else {Print(TPPriceBuy[maxValueIdx]," modified to : ",TPPriceBuy[j]);} TPPriceBuy[maxValueIdx] = TPPriceBuy[ArraySize(OpenPriceBuy)-1]; OpenPriceBuy[maxValueIdx] = OpenPriceBuy[ArraySize(OpenPriceBuy)-1]; } } }

- 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,
This is my idea. I want make moving or dynamic taking profit if pending order fill...
PO=pending order, TP=taking profit
Example:
PO3---------------------------- = PO3 trigger, all TP at TP3
PO2---------------------------- = PO2 trigger, all TP at TP2
TP3++++++++++++++++
PO1---------------------------- = PO1 trigger, all TP at TP1
TP2++++++++++++++++
TP1++++++++++++++++