If 90% of TP -> Set New SL-> Set new TP... But why does it not work??!
It either works only for the SL but not for the TP
if i hide the SL part-> it creates endless Takeprofits (everytime +210+210+210+210) <- actually after one Modification the Condition wouldnt be true, but it still goes on adding 210.
Where does the 90% figure in your code?
I am not sure what you are trying to do but
if ((OrderTakeProfit()-OrderOpenPrice())*0.80 <= Ask - OrderOpenPrice())
for a long order surely you should be using Bid not Ask.
The code body is to be executed when price reaches 80% of Take Profit?
if (OrderStopLoss()>0.1000 && OrderTakeProfit()>0.1000)
Won't this always be true unless TP and SL are not set?
I think you can design new rule by this concept
Profit_in_points = Current_Profit/Current_Lot;
Move_TP_Start = 80 points;
Step_TP_move = 21 points;
Max_move_times = x;
for(int i = 0; i=x; i++)
{
if(Profit_in_points >= (Move_TP_Start + i*Step_TP_move) ) Move_TP();
else break;
}
Note: () meaning function call
if( SL_Setzen=false )
should be
if( SL_Setzen==false )
if( !OrderModify( OrderTicket(), OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit()+(_Points*210),0,Yellow) ) {GetLastError(); Print("TP2 konnte nicht gesetzt werden");} if( OrderModify( OrderTicket(), OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit()+(_Points*210),0,Yellow) ) {Print("New TakeProfit=",(OrderTakeProfit()));}
I have made the above 4 lines instead of 2 to make it easier to read.
You have not updated OrderSelect() so it will still hold the previous TP value.
You are trying to modify the order 3 times with the same values. The 2nd and 3rd modify will always fail.
if( !OrderModify( OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NewTP,0,Yellow) ) {GetLastError(); Print("TP2 konnte nicht gesetzt werden");} else {Print("New TakeProfit=",DoubleToStr(NewTP,Digits));}
Where does the 90% figure in your code?
I am not sure what you are trying to do but
for a long order surely you should be using Bid not Ask.
The code body is to be executed when price reaches 80% of Take Profit?
Won't this always be true unless TP and SL are not set?
->Yes, the 90% was mentioned as 0.80% (forgot to change that sry)
->With Bid i want to check the possible Close Price (to the Price to open)-> in a LongOrder wouldnt that be the Ask?
->Yes
-> kind of true, but its purpose is only to check if the first SL & TP were set successfully (otherwise would be ==0 and then the next SLs & TPs wouldnt work)
Thank you, is that code only for the TP?
& why do you mention Lots in? Profit_in_points = Current_Profit/Current_Lot;
Sorry but i dont understand the idea behind that concept: why do you say i=0 & i=x in the following? for(int i = 0; i=x; i++) (did you mean "for(int i = 0; i==x; i++)")
->With Bid i want to check the possible Close Price (to the Price to open)-> in a LongOrder wouldnt that be the Ask?
When a Buy/Long order is open it will always close at Bid
//if ((OrderTakeProfit()-OrderOpenPrice())*0.80 <= Ask - OrderOpenPrice()) //Wrong if ((OrderTakeProfit()-OrderOpenPrice())*0.80 <= Bid - OrderOpenPrice()) //Or better still if ((OrderTakeProfit()-OrderOpenPrice())*0.80 <= OrderClosePrice() - OrderOpenPrice())
if (OrderStopLoss()>0.1000 && OrderTakeProfit()>0.1000)
Won't this always be true unless TP and SL are not set?
-> kind of true, but its purpose is only to check if the first SL & TP were set successfully (otherwise would be ==0 and then the next SLs & TPs wouldnt work)
Then why not
if (OrderStopLoss()!=0 && OrderTakeProfit()!=0)? Then the logic is understood by others reading your code
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
If 90% of TP -> Set New SL-> Set new TP... But why does it not work??!
It either works only for the SL but not for the TP
if i hide the SL part-> it creates endless Takeprofits (everytime +210+210+210+210) <- actually after one Modification the Condition wouldnt be true, but it still goes on adding 210.