0043名無しさん@お金いっぱい。
2020/11/14(土) 11:30:30.79ID:lzybkOkq0input int MaxSlippage = 5;
int OnInit(){
ObjectCreate(0,"CloseButton",OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,"CloseButton",OBJPROP_XDISTANCE,20);
ObjectSetInteger(0,"CloseButton",OBJPROP_YDISTANCE,300);
ObjectSetInteger(0,"CloseButton",OBJPROP_XSIZE,100);
ObjectSetInteger(0,"CloseButton",OBJPROP_YSIZE,50);
ObjectSetString(0,"CloseButton",OBJPROP_TEXT,"Close All");
ObjectSetInteger(0,"CloseButton",OBJPROP_COLOR,Blue);
ObjectSetInteger(0,"CloseButton",OBJPROP_BGCOLOR,Aqua);
ObjectSetInteger(0,"CloseButton",OBJPROP_BORDER_COLOR,Blue);
ObjectSetInteger(0,"CloseButton",OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,"CloseButton",OBJPROP_BACK,false);
ObjectSetInteger(0,"CloseButton",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"CloseButton",OBJPROP_STATE,false);
ObjectSetInteger(0,"CloseButton",OBJPROP_FONTSIZE,12);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason){
ObjectDelete(0,"CloseButton");}
void OnTick(){}
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam){
if(sparam == "CloseButton"){
CloseAllOpenPositions(MaxSlippage);
ObjectSetInteger(0,"CloseButton",OBJPROP_STATE,false);}}
void CloseAllOpenPositions(int intMaxSlippage){
bool checkOrderClose = true;
int index = OrdersTotal()-1;
while (index >=0 && OrderSelect (index,SELECT_BY_POS,MODE_TRADES)==true){
if (OrderType()==OP_BUY || OrderType()==OP_SELL){
checkOrderClose = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),MaxSlippage,CLR_NONE);
if(checkOrderClose == false){
int errorCode = GetLastError();
if (errorCode == 1 || errorCode == 2 || errorCode == 5 || errorCode == 6 || errorCode == 64 ||
errorCode == 65 || errorCode == 132 || errorCode == 133 || errorCode == 139) break;
else continue;}}index--;}}