Скрипт. Таблица спорных ордеров.

 

Некоторые ДЦ имеют в своих договорах пункт о минимальном времени "жизни ордера на рынке",

согласно которому дилер имеет полное право их отменить...

При возникновении подобного спора вполне логична отмена всех ордеров не взирая на срок давности.

*

//+---минутки.mq4-----------------------+
int handle, cnt, time=120;
double itogo;
//---
int start()
{
handle = FileOpen("minuts" + ".html", FILE_BIN|FILE_WRITE);
WriteString("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\r\n\"
+"http://www.w3.org/TR/html4/strict.dtd\">\r\n"
+"<HTML><HEAD>\r\n"
+"<meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1251\">\r\n"
+"<meta name=generator content=kombates.NET />\r\n"
+"<STYLE type=\"text/css\">\r\n" 
+"BODY {\r\n"
+"background: #dadada;\r\n"
+"font-family: \"Arial Cyr\";\r\n"
+"font-size: 8.0pt;\r\n"
+"}\r\n"
+"TABLE {\r\n" // стиль таблицы
+"border:1px solid blue;\r\n"
+"border-collapse: collapse;\r\n"
+"font-size: 8.0pt;\r\n"
+"text-align: center;\r\n"
//+"bordercolor:;\r\n"
+"}\r\n"
+"TH {\r\n" // стиль хидера таблицы
+"border-left:1px solid blue;\r\n"
+"border-bottom:1px solid blue;\r\n"
+"border-collapse: collapse;\r\n"
+"font-size: 8.0pt;\r\n"
//+"bordercolor:;\r\n"
+"}\r\n"
+"TD {\r\n" // стиль ячеек по умолчанию
+"padding-left: 5px;\r\n"
+"border-left:1px solid blue;\r\n"
+"border-bottom:1px solid blue;\r\n"
+"border-collapse: collapse;\r\n"
+"font-size: 8.0pt;\r\n"
//+"bordercolor:;\r\n"
+"}\r\n"
+"</STYLE>\r\n"
+"<TITLE>Спорные ордера - "+AccountCompany()+"</TITLE>\r\n</HEAD><BODY>\r\n"
+"Список спорных ордеров по счёту "+AccountNumber()+" в компании "+AccountCompany()+"<HR>\r\n"
+"<TABLE><TR><TH>№</TH><TH>Тикет</TH><TH>Секунд</TH><TH>Пипс</TH><TH>Профит</TH></TR>\r\n");
for (int cnt = 0 ; cnt < OrdersHistoryTotal(); cnt++) 
  { int cn2;
    if(!OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))continue;
    if (OrderCloseTime()-OrderOpenTime() < time && OrderType()==OP_BUY || OrderType()==OP_SELL) 
    {cn2++;
WriteString("<TR><TD>"+cn2+"</TD><TD>"+OrderTicket()+
"</TD><TD>"+(OrderCloseTime()-OrderOpenTime())+"</TD><TD>"
+DoubleToStr(MathAbs((OrderOpenPrice()-OrderClosePrice())/OrderPoint()),0)
+"</TD><TD>"+DoubleToStr(OrderCommission()+OrderProfit()+OrderSwap(),2)+"</TD></TR>\r\n");
itogo+=OrderCommission()+OrderProfit()+OrderSwap();
   } 
}
WriteString("</TABLE>\r\n"+"Итого: "+DoubleToStr(itogo,2)+" "+AccountCurrency()+".\r\n</BODY></HTML>");    
return(0);
}
//+--- Набор функций -----------------------------------------------+
void WriteString(string txt) { FileWriteString(handle, txt,StringLen(txt)); }
//---
double OrderPoint()
{ 
double op=MarketInfo(OrderSymbol(),MODE_POINT);
if(MarketInfo(OrderSymbol(),MODE_POINT)==0) 
MessageBox("В окне \"Обзор рынка\"\nнеобходимо показать все символы...","Ошибка !!!",0);
return(op);
}
//+------------------------------------------------------------------+

ЗЫ: единственная "проблема" этого скрипта, перед запуском надо в окне "Обзор рынка"

показать все символы...

Намёк разработчикам обратить на это внимание!

 

Пример таблицы:

Тикет Секунд Пипс Профит
1 2130002 99 9 438.09
2 2139937 81 1 9.67
3 2139941 54 2 96.65
4 2140116 65 4 -1.94
5 2150232 100 1 47.42
6 2150675 81 2 -95.48
7 2150676 30 2 -477.42
8 2150677 44 6 -171.82
9 2173592 28 0 0.00
10 2175166 8 15 -88.49
11 2218521 20 1 -46.41
12 2218522 13 1 -33.75
13 2218523 36 1 -150.00
14 2218524 50 1 -139.25
15 2218526 103 4 -185.60
16 2268222 40 0 0.00
17 2268238 50 8 400.00
Итого: -398.33 USD.