Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
0
Won Trades
0
Lost trades
0
Win Rate
0.0 %
Expected payoff
0.00
Gross Profit
0.00
Gross Loss
0.00
Total Net Profit
0.00
-100%
-50%
0%
50%
100%
PipsingV2_BUY
//+---------------------------------------------------------------------------+
//| Èñïîëüçîâàí, èçìåíåí Sell Percent.mq4 Scriptor èç CodeBase MQL-4.com |
//| Aleksandr Pak, Alma-Ata, 03.2008 |
//+---------------------------------------------------------------------------+
#property copyright "ekr-ap@mail.ru"
#property copyright "mandorr@gmail.com" //ññûëêà íà èñõîäíûé Sell Percent.mq4
#include <WinUser32.mqh>
double y_pipsown;
int deinit()
{
ObjectDelete("PipsWork");
}
void start()
{ int i,j,k,Slipp,Pop,Buy_tp,Buy_sl,Sell_tp,Sell_sl,Blank_buy,Blank_sell,err,crach,twoslash=1;
double Lot,loss,profit;
int ticket;
string s,r="Parametrs??",p,x,ex;
if (!IsCondition()) return;
ObjectCreate("PipsWork",OBJ_TEXT,0,iTime(NULL,0,10),High[10]);
ObjectSetText("PipsWork", "!!!", 60,"",Red);
WindowRedraw();
if(GlobalVariableCheck("P_Lot")==FALSE) r=r+"1";
if(GlobalVariableCheck("P_Slippage")==FALSE) r=r+"2";
if(GlobalVariableCheck("P_Repetitions")==FALSE) r=r+"3";
if(GlobalVariableCheck("P_Buy_tp")==FALSE) r=r+"4";
if(GlobalVariableCheck("P_Buy_sl")==FALSE) r=r+"5";
if(GlobalVariableCheck("P_Sell_tp")==FALSE) r=r+"6";
if(GlobalVariableCheck("P_Sell_sl")==FALSE) r=r+"7";
if(GlobalVariableCheck("P_Blank_buy")==FALSE) r=r+"8";
if(GlobalVariableCheck("P_Blank_sell")==FALSE) r=r+"9";
if(GlobalVariableCheck("P_Two_slash")==FALSE) r=r+"10";
if(StringLen(r)>11) {MessageBox(r,"",MB_OK|MB_ICONERROR); return;}
Lot =GlobalVariableGet("P_Lot");
Slipp =GlobalVariableGet("P_Slippage");
Pop =GlobalVariableGet("P_Repetitions");
Buy_tp =GlobalVariableGet("P_Buy_tp");
Buy_sl =GlobalVariableGet("P_Buy_sl");
Sell_tp =GlobalVariableGet("P_Sell_tp");
Sell_sl =GlobalVariableGet("P_Sell_sl");
Blank_buy =GlobalVariableGet("P_Blank_buy");
Blank_sell=GlobalVariableGet("P_Blank_sell");
twoslash =GlobalVariableGet("P_Two_slash");
ex="PiPsing= "+DoubleToStr(Lot,1)+" "+DoubleToStr(Slipp,0)+" "+DoubleToStr(Pop,0)+
" "+DoubleToStr(Buy_tp,0)+" "+DoubleToStr(Buy_sl,0)+
" "+DoubleToStr(Sell_tp,0)+" "+DoubleToStr(Sell_sl,0)+
" "+DoubleToStr(Blank_buy,0)+" "+DoubleToStr(Blank_sell,0)+" "+DoubleToStr(twoslash,0);
i=0.3*WindowBarsPerChart(); //place for text
y_pipsown=0.95*(WindowPriceMax(0)-WindowPriceMin(0))+WindowPriceMin(0);
if(ObjectFind("PipsOwn2")==-1)
{ObjectCreate("PipsOwn2",OBJ_TEXT,0,iTime(NULL,0,i), y_pipsown);
//ObjectCreate("PipsOwn2",OBJ_TEXT,0,iTime(NULL,0,i),High[i]+40*Point);
ObjectSetText("PipsOwn2", ex , 9,"",White);
} else
{ObjectSetText("PipsOwn2", ex , 9,"",White);
if ( iBarShift ( NULL,0,ObjectGet ( "PipsOwn2",OBJPROP_TIME1),FALSE )>0.5*WindowBarsPerChart())
ObjectSet("PipsOwn2",OBJPROP_TIME1,iTime(NULL,0,i)); //åñëè çà êðàé ýêðàíà
}
if (AccountLots(Lot)<=0)
{
string title="Îøèáêà";
string msg="Íåò ñâîáîäíûõ ñðåäñòâ ";
MessageBox(msg,title,MB_OK|MB_ICONERROR);
return;
}
if(Blank_buy==0)
{if (twoslash==1)
{
ticket = send_order(0,ticket,Lot,Slipp,Pop,0,0); //send empty
if(ticket>0)
{//Sleep(1000); //Åñëè áðîêåð íå äàåò áûñòðî èçìåíÿòü, ñíÿòü //, ïîäîáðàòü çàäåðæêó
send_order(1,ticket,Lot,Slipp,Pop,Buy_tp,Buy_sl); //modify
}
}
else send_order(0,ticket,Lot,Slipp,Pop,Buy_tp,Buy_sl); //send +tp/sl
}
ObjectDelete("PipsWork");
}
//....................................................
int send_order(int sm, int ticket, double Lot, int Slipp, int Pop,int _tp, int _sl)
//sm=0 - send tp/sl, sm=1 send tp=0,sl=0 sm=2 modify
{int err,k,crach;
double loss,profit;
bool result=TRUE;
err=1; k=0;
while(err!=0||k>=Pop)
{ k+=1; RefreshRates();
if (_sl>0) loss =Ask-_sl *Point; else loss=0;
if (_tp>0) profit=Ask+_tp*Point; else profit=0;
if(sm==0) ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,Slipp,loss,profit,NULL,0,0,CLR_NONE);
else result=OrderModify(ticket,0,loss,profit,0,CLR_NONE);
err=ShowError(Pop,k);
if(err==0&&result==TRUE) break; else { Sleep(1000); }
if(k>=Pop) break;
//ïîâòîð òîëüêî ïðè 4 6 135 136 137 138 146
switch(err)
{
case 6: crach=0; //íåò ñâÿçè
case 135: crach=0;//Öåíà èçìåíèëàñü
case 136: crach=0;//Íåò öåí
case 137: crach=0;//Áðîêåð çàíÿò
case 138: crach=0;//Íîâûå öåíû
case 145: crach=0;//Ñëèøêîì áëèçêî ê ðûíêó
case 146: crach=0;//Ïîäñèñòåìà òîðãîâëè çàíÿòà
default : crach=1;
}
if(crach==1)break; //new repeat is crazy
}
if(err>1) ticket=-ticket;
return (ticket);
}
double AccountLots(double Lot)
{
double freemargin=AccountFreeMargin(); if (freemargin<=0) return (0);
double lotmargin=0;
string symbol=Symbol();
string market=MarketType(symbol);
if (market=="Forex" ) lotmargin=LotMarginForex (symbol);
if (market=="Metalls") lotmargin=LotMarginCFD (symbol);
if (market=="CFD" ) lotmargin=LotMarginCFD (symbol);
if (market=="Futures") lotmargin=LotMarginFutures(symbol);
if (market=="") return (0);
if(Lot*lotmargin>freemargin) return (-1); else return (1);
}
string MarketType (string symbol)
{
int len=StringLen(symbol);
string base;
if (StringSubstr(symbol,0,1)=="_") return ("Indexes");
if (StringSubstr(symbol,0,1)=="#")
{
base=StringSubstr(symbol,len-1,1);
if (base=="0") return ("Futures");
if (base=="1") return ("Futures");
if (base=="2") return ("Futures");
if (base=="3") return ("Futures");
if (base=="4") return ("Futures");
if (base=="5") return ("Futures");
if (base=="6") return ("Futures");
if (base=="7") return ("Futures");
if (base=="8") return ("Futures");
if (base=="9") return ("Futures");
return ("CFD");
}
else
{
if (symbol=="GOLD" ) return ("Metalls");
if (symbol=="SILVER") return ("Metalls");
if (len==6)
{
base=StringSubstr(symbol,0,3);
if (base=="AUD") return ("Forex");
if (base=="CAD") return ("Forex");
if (base=="CHF") return ("Forex");
if (base=="EUR") return ("Forex");
if (base=="GBP") return ("Forex");
if (base=="LFX") return ("Forex");
if (base=="NZD") return ("Forex");
if (base=="SGD") return ("Forex");
if (base=="USD") return ("Forex");
}
}
return ("");
}
double LotMarginForex (string symbol)
{
double lotsize=MarketInfo(symbol,MODE_LOTSIZE);
double leverage=AccountLeverage();
double result=0; if (leverage>0) result=lotsize/leverage;
string base=StringSubstr(symbol,0,3);
string ñurrency=AccountCurrency();
double rate_ñurrency=1; if (base!=ñurrency) rate_ñurrency=MarketInfo(base+ñurrency,MODE_BID);
result=rate_ñurrency*result;
return (result);
}
double LotMarginCFD (string symbol)
{
double bid_symbol=MarketInfo(symbol,MODE_BID);
double lotsize=MarketInfo(symbol,MODE_LOTSIZE);
double leverage=10;
double result=0; if (leverage>0) result=lotsize*bid_symbol/leverage;
string ñurrency=AccountCurrency();
double rate_ñurrency=1; if (ñurrency!="USD") rate_ñurrency=MarketInfo(ñurrency+"USD",MODE_BID);
result=rate_ñurrency*result;
return (result);
}
double LotMarginFutures (string symbol)
{
int len=StringLen(symbol);
double result=0;
string base=StringSubstr(symbol,0,len-2);
if (base=="#ENQ" ) result=3750;
if (base=="#EP" ) result=3938;
if (base=="#SLV" ) result=5063;
if (base=="#GOLD") result=2363;
if (base=="#CL" ) result=4725;
if (base=="#NG" ) result=8100;
if (base=="#W" ) result= 608;
if (base=="#S" ) result=1148;
if (base=="#C" ) result= 473;
string ñurrency=AccountCurrency();
double rate_ñurrency=1; if (ñurrency!="USD") rate_ñurrency=MarketInfo(ñurrency+"USD",MODE_BID);
result=rate_ñurrency*result;
return (result);
}
bool IsCondition()
{
bool result=true;
string field=" ";
string msg;
string title="Îøèáêà"; if (AccountNumber()>0)title=AccountNumber()+": "+title;
if (!IsConnected())
{
msg=msg+"Ñâÿçü ñ ñåðâåðîì îòñóòñòâóåò"+field;
result=false;
}
if (!IsTradeAllowed())
{
if (!result) msg=msg+"\n";
msg=msg+"Òîðãîâëÿ çàïðåùåíà"+field;
result=false;
}
if (!result) MessageBox(msg,title,MB_OK|MB_ICONERROR);
return (result);
}
int ShowError(int Pop, int k)
{
string description;
int err=GetLastError(),crach; //3 129 130 131 134 139 140
switch (err) //ïîâòîð òîëüêî ïðè 4, 6, 135, 136 137 138 146
{
case 0: return;
case 1: description="Íåò îøèáêè, íî ðåçóëüòàò íåèçâåñòåí"; break;
case 2: description="Îáùàÿ îøèáêà"; break;
case 3: description="Íåïðàâèëüíûå ïàðàìåòðû"; break;
case 4: description="Òîðãîâûé ñåðâåð çàíÿò"; break;
case 5: description="Ñòàðàÿ âåðñèÿ êëèåíòñêîãî òåðìèíàëà"; break;
case 6: description="Íåò ñâÿçè ñ òîðãîâûì ñåðâåðîì"; break;
case 7: description="Íåäîñòàòî÷íî ïðàâ"; break;
case 8: description="Ñëèøêîì ÷àñòûå çàïðîñû"; break;
case 9: description="Íåäîïóñòèìàÿ îïåðàöèÿ íàðóøàþùàÿ ôóíêöèîíèðîâàíèå ñåðâåðà"; break;
case 64: description="Ñ÷åò çàáëîêèðîâàí"; break;
case 65: description="Íåïðàâèëüíûé íîìåð ñ÷åòà"; break;
case 128: description="Èñòåê ñðîê îæèäàíèÿ ñîâåðøåíèÿ ñäåëêè"; break;
case 129: description="Íåïðàâèëüíàÿ öåíà"; break;
case 130: description="Íåïðàâèëüíûå ñòîïû"; break;
case 131: description="Íåïðàâèëüíûé îáúåì"; break;
case 132: description="Ðûíîê çàêðûò"; break;
case 133: description="Òîðãîâëÿ çàïðåùåíà"; break;
case 134: description="Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè"; break;
case 135: description="Öåíà èçìåíèëàñü"; break;
case 136: description="Íåò öåí"; break;
case 137: description="Áðîêåð çàíÿò"; break;
case 138: description="Íîâûå öåíû"; break;
case 139: description="Îðäåð çàáëîêèðîâàí è óæå îáðàáàòûâàåòñÿ"; break;
case 140: description="Ðàçðåøåíà òîëüêî ïîêóïêà"; break;
case 141: description="Ñëèøêîì ìíîãî çàïðîñîâ"; break;
case 145: description="Ìîäèôèêàöèÿ çàïðåùåíà, òàê êàê îðäåð ñëèøêîì áëèçîê ê ðûíêó"; break;
case 146: description="Ïîäñèñòåìà òîðãîâëè çàíÿòà"; break;
case 147: description="Èñïîëüçîâàíèå äàòû èñòå÷åíèÿ îðäåðà çàïðåùåíî áðîêåðîì"; break;
default : description="Íåèçâåñòíàÿ îøèáêà"; break;
}
switch(err)
{ case 4: crach=0;
case 6: crach=0;
case 135: crach=0;
case 136: crach=0;
case 137: crach=0;
case 138: crach=0;
case 146: crach=0;
default : crach=1;
}
string field=" ";
string msg="Îøèáêà #"+err+" "+description+field;
string title="Îøèáêà"; if (AccountNumber()>0)title=AccountNumber()+": "+title;
if(crach==1) MessageBox(msg,title,MB_OK|MB_ICONERROR);
if(Pop-1==k) MessageBox(msg,title,MB_OK|MB_ICONERROR);
return (err);
}
// End
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---