Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Поделись своими разработками. Это увеличит твой рейтинг.
bambastik
109
bambastik 2013.10.23 09:30 

Хелп. нигде не могу встретить обычный скрипт который выводит в окно терминала количество buy и sell ордеров.

Artyom Trishkin
68988
Artyom Trishkin 2013.10.23 10:06  
bambastik:

Хелп. нигде не могу встретить обычный скрипт который выводит в окно терминала количество buy и sell ордеров.

Так сделайте сами. Вы ж в космос летали, значит вам вообще ничего не стоит такую простоту написать ;)
bambastik
109
bambastik 2013.10.23 11:31  

Да еслиб я мог, развеб я тут флудил.

Вообщем суть, собрал скрипт из нескольких, спасибо авторам.

#property indicator_chart_window
string account_balance;

//--------------------------------------------------------------------
int deinit() {
ObjectDelete("Balance");
return(0);}
//--------------------------------------------------------------------


int start()
{

ObjectCreate("Balance",OBJ_LABEL,0,0,0);
ObjectSet("Balance",OBJPROP_YDISTANCE,10);
ObjectSet("Balance",OBJPROP_XDISTANCE,910);

account_balance=TimeToStr(DayOfWeek(),0)+" | "+TimeToStr(TimeLocal(),TIME_MINUTES)+" | "+DoubleToStr(AccountBalance(),0)+" | "+DoubleToStr(AccountEquity(),0)+" | "+DoubleToStr(AccountFreeMargin(),0)+" | "+DoubleToStr(AccountProfit(),0);
ObjectSetText("Balance",account_balance,18,"Terminal",Gold);

//--------------------------------------------------------------------
return;
}

и он показывает в правом верхнем углу инфу кот. мне требуется. Вот и хочу в него добавить код чтоб в левом нижнем углу отобразилась инфа о количестве ордеров buy и sell. Хотел из этого скрипта взять https://www.mql5.com/ru/code/9283, но он для меня трудно понятен да мне только немного года из него нужно а так почти то что нужно.

Всеволод
648
Всеволод 2013.10.23 11:45  

Я пользуюсь таким кодом

double vs=0,vb=0;
for (int i=0;i<OrdersTotal();i++){
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol()) {
   if (OrderType()==OP_BUY) vb+=OrderLots();
   if (OrderType()==OP_SELL) vs+=OrderLots();
   }
Comment("Buy lots: ",vb, "    Sell lots: ", vs,  "  SWAPLONG: ",MarketInfo(Symbol(),MODE_SWAPLONG),"          SWAPSHORT:  ",MarketInfo(Symbol(),MODE_SWAPSHORT));

Правда он считает объемы, но на количество переделать несложно.

bambastik
109
bambastik 2013.10.23 11:54  

не умею я переделывать объемы на количество. вот ты у меня попроси помочь с штмл версткой например я те помогу сразу ибо ее я знаю, если бы я знал этот код я бы любому за пару минут создал код ибо это комунити и т.д.

Всеволод
648
Всеволод 2013.10.23 11:59  
html, css, php, js и много других страшных слов я и сам знаю... а ближе к теме замени OrderLots() на единичку. Если уж знаешь html, то разобраться в коде как два пальца должно быть.
bambastik
109
bambastik 2013.10.23 12:04  

не получилось, ну ладно, флуд начался, сорри за биспакойство отбой, обойдусь.

o_O
Модератор
23304
o_O 2013.10.23 12:26  
bambastik:

не получилось, ну ладно, флуд начался, сорри за биспакойство отбой, обойдусь.


не получилось OrderLots() на 1 заменить? клавиатура совсем сломалась?
Всеволод
648
Всеволод 2013.10.23 12:32  

Не нужна человеку удочка, ему рыбку подавай.

#property indicator_chart_window
string account_balance;

//--------------------------------------------------------------------
int deinit() {
ObjectDelete("Balance");
return(0);}
//--------------------------------------------------------------------


int start() 
{

ObjectCreate("Balance",OBJ_LABEL,0,0,0); 
ObjectSet("Balance",OBJPROP_YDISTANCE,10);
ObjectSet("Balance",OBJPROP_XDISTANCE,910);

account_balance=TimeToStr(DayOfWeek(),0)+" | "+TimeToStr(TimeLocal(),TIME_MINUTES)+" | "+DoubleToStr(AccountBalance(),0)+" | "+DoubleToStr(AccountEquity(),0)+" | "+DoubleToStr(AccountFreeMargin(),0)+" | "+DoubleToStr(AccountProfit(),0);
ObjectSetText("Balance",account_balance,18,"Terminal",Gold);

int vs=0,vb=0;
for (int i=0;i<OrdersTotal();i++){
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol()) {
   if (OrderType()==OP_BUY) vb+=1;
   if (OrderType()==OP_SELL) vs+=1;
   }
}
ObjectCreate("Orders",OBJ_LABEL,0,0,0); 
ObjectSet("Orders",OBJPROP_CORNER,2);
ObjectSet("Orders",OBJPROP_YDISTANCE,10);
ObjectSet("Orders",OBJPROP_XDISTANCE,10);
ObjectSetText("Orders",vb+" / "+vs,18,"Terminal",Gold);
   
//--------------------------------------------------------------------
return;
}
bambastik
109
bambastik 2013.10.23 14:56  

спасибо огромное за помощь splxgf, все работает ты бы в подпись координаты яд или вебманей каких оставил, чтоб кому помог смогли тебя чем то материальным отблагодарить. и модераторам спасибо, молодцы они тут.

sergeev:

не получилось OrderLots() на 1 заменить? клавиатура совсем сломалась?

работает клава просто не стал отвечать потому что ну ничего бы не дало кроме внимание спрашивающему. а ставил я именно туда их куда поставил splxgf но сам код вверх поставил между стартом и ObjectCreate("Balance" потому и не получилось.

В итоге оставил так сдвинув все вниз.

#property indicator_chart_window

int start()
{
int vs=0,vb=0;
for (int i=0;i<OrdersTotal();i++){
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol()) {
if (OrderType()==OP_BUY) vb+=1;
if (OrderType()==OP_SELL) vs+=1;
}
}

ObjectCreate("Balance",OBJ_LABEL,0,0,0);
ObjectSet("Balance",OBJPROP_CORNER,2);
ObjectSet("Balance",OBJPROP_YDISTANCE,10);
ObjectSet("Balance",OBJPROP_XDISTANCE,1040);

ObjectCreate("tet",OBJ_LABEL,0,0,0);
ObjectSet("tet",OBJPROP_CORNER,2);
ObjectSet("tet",OBJPROP_YDISTANCE,40);
ObjectSet("tet",OBJPROP_XDISTANCE,1070);

ObjectCreate("sd",OBJ_LABEL,0,0,0);
ObjectSet("sd",OBJPROP_CORNER,2);
ObjectSet("sd",OBJPROP_YDISTANCE,70);
ObjectSet("sd",OBJPROP_XDISTANCE,1050);

ObjectSetText("sd",DoubleToStr(MarketInfo(Symbol(),MODE_ASK),5)+" | "+DoubleToStr(MarketInfo(Symbol(),MODE_SPREAD),0)+" | "+DoubleToStr(MarketInfo(Symbol(),MODE_BID),5),18,"Terminal",LightGray); // ASK | Спред | BID


ObjectSetText("tet",vb+" | "+vs+" | "+TimeToStr(DayOfWeek(),0)+" | "+TimeToStr(TimeLocal(),TIME_MINUTES),18,"Terminal",DarkOrchid); // количество позиций | день недели по счету | локальное время машины


ObjectSetText("Balance",DoubleToStr(AccountBalance(),0)+" | "+DoubleToStr(AccountEquity(),0)+" | "+DoubleToStr(AccountFreeMargin(),0)+" | "+DoubleToStr(AccountProfit(),0),18,"Terminal",Gold); // Баланс | Средства | Свободно | Прбыль

//--------------------------------------------------------------------
return;
}

Но без помощи бы никуда. еще раз спасибо.

bambastik
109
bambastik 2013.10.24 22:52  

Помогите еще пожалуйста кто может с определением максимальной просадки ask и bid.

Есть например ордера, 3 ask и 4 bid

Можно ли вычислить примерную просадку (точной наверное не получится с учетом спредов) при движение курса пары вниз и вверх для этих 7 ордеров.

Хочу добавить и эти данные в скрипт, чтоб появились еще две цифры одна показывающая просадку при движении графика вверх вторая для движения графика вниз для всех текущих ордеров.

И еще вопрос по скрипту, в этой части "EURUSD",MODE_ASK можно ли заменить EURUSD универсальным значением которое подойдет к любому инструменту с которым работает скрипт чтоб типа "TOOL",MODE_ASK?

/ /1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий