I have a script from back in 2015, now it is not working and I can see some errors while compiling, but have no idea how to fix them.
if anyone would help me id be greatful.
Thanks
Code: Select all
#property copyright "Copyright © 2011, sangmane."
#property link
#import "EasyOrder.dll"
int EasyOrder(int hwnd);
string obj;
int i, ticket;
int start()
{
int hwnd = WindowHandle(Symbol(),0);
if(hwnd==0) {
Alert("Error!");
return;
}
int ret = EasyOrder(hwnd);
Print("Return value: ",ret);
if(ret<0) {
Alert("Dll function failed!");
return;
}
if(ret==1) ModifyOrder();
else {
for(i=ObjectsTotal()-1; i>=0; i--) {
obj = ObjectName(i);
if(StringFind(obj,"EASYORDER",0)>=0) ObjectDelete(obj);
}
}
InitLines();
return (0);
}
//+------------------------------------------------------------------+
void InitLines()
{
//Delete old lines
bool delete;
int pos;
int ticket;
for(i=ObjectsTotal()-1; i>=0; i--) {
obj = ObjectName(i);
if(StringFind(obj,"EASYORDER_MOD")>=0) {
delete = True;
pos = StringFind(obj,"#",1);
if(pos<0) continue;
ticket = StrToDouble(StringSubstr(obj,pos+1,StringLen(obj)-pos-1));
if(OrderSelect(ticket,SELECT_BY_TICKET)) {
if(OrderCloseTime()==0) delete = false;
}
if(delete) ObjectDelete(obj);
}
}
double sl, tp;
for(i=0; i<OrdersTotal(); i++) {
OrderSelect(i,SELECT_BY_POS);
if(OrderSymbol()==Symbol()) {
ticket = OrderTicket();
obj = "EASYORDER_MOD_SL_#"+ticket;
sl = OrderStopLoss();
tp = OrderTakeProfit();
if(sl==0) sl = OrderOpenPrice();
if(tp==0) tp = OrderOpenPrice();
if(ObjectFind(obj)>=0) ObjectMove(obj,0,Time[0],sl);
else DrawLine("SL",ticket,sl);
obj = "EASYORDER_MOD_TP_#"+ticket;
if(ObjectFind(obj)>=0) ObjectMove(obj,0,Time[0],tp);
else DrawLine("TP",ticket,tp);
if(OrderType()>OP_SELL) {
obj = "EASYORDER_MOD_PRICE_#"+ticket;
if(ObjectFind(obj)>=0) ObjectMove(obj,0,Time[0],OrderOpenPrice());
else DrawLine("PRICE",ticket,OrderOpenPrice());
}
}
}
}
void ModifyOrder()
{
string obj;
int i, ticket;
double sl, price, tp;
double osl, otp;
for(i=0; i<OrdersTotal(); i++) {
OrderSelect(i,SELECT_BY_POS);
if(OrderSymbol()==Symbol()) {
ticket = OrderTicket();
sl = 0; price = 0; tp = 0;
obj = "EASYORDER_MOD_SL_#"+ticket;
osl = OrderStopLoss();
if(osl==0) osl = OrderOpenPrice();
otp = OrderStopLoss();
if(otp==0) otp = OrderOpenPrice();
if(ObjectFind(obj)>=0) {
if(MathAbs(ObjectGet(obj,OBJPROP_PRICE1)-osl)>Point) sl = ObjectGet(obj,OBJPROP_PRICE1);
}
obj = "EASYORDER_MOD_TP_#"+ticket;
if(ObjectFind(obj)>=0) {
if(MathAbs(ObjectGet(obj,OBJPROP_PRICE1)-otp)>Point) tp = ObjectGet(obj,OBJPROP_PRICE1);
}
if(OrderType()>OP_SELL) {
obj = "EASYORDER_MOD_PRICE_#"+ticket;
if(ObjectFind(obj)>=0) {
if(MathAbs(ObjectGet(obj,OBJPROP_PRICE1)-OrderOpenPrice())>Point) price = ObjectGet(obj,OBJPROP_PRICE1);
}
}
if(sl+tp+price>0) {
if(sl==0) sl = OrderStopLoss();
if(tp==0) tp = OrderTakeProfit();
if(price==0) price = OrderOpenPrice();
OrderModify(ticket,price,sl,tp,0,CLR_NONE);
}
}
}
}
void DrawLine(string type, int ticket, double level)
{
string obj = "EASYORDER_MOD_"+type+"_#"+ticket;
color clr = Red;
if(type=="PRICE") clr = LimeGreen;
//else if(type=="TP") clr = Blue;
ObjectCreate(obj,OBJ_HLINE,0,Time[0],level,0,0);
ObjectSet(obj,OBJPROP_COLOR,clr);
ObjectSet(obj,OBJPROP_STYLE,STYLE_DASHDOT);
}