Ответ
 
Опции темы
04.10.2013, 16:02
Аватар для Leonup
Leonup Новичок форума
Регистрация: 23.12.2011 / Сообщений: 58
Поблагодарили 4 раз(а) / Репутация: 5

По умолчанию Убыток в пунктах


Здравствуйте!

Итог графы Прибыль в терминале показывает сумму прибыли или убытков.
Меня интересует сумма убытков. Допустим, по одному инструменту открыто несколько ордеров, и общий итог – Убыток.
И если OrderProfit() разделить на Point:
OrderProfit() / Point,
то ведь получится сумма убытка в пунктах (с учетом свопов)?
Если это правильно, то, странно, что в журнал выводятся огромные непонятные числа, например, order_profit (это у меня переменная) = -79092000.
Или по этой формуле рассчитывать неправильно? А тогда как будет правильно?
Спасибо.
Leonup вне форума Ответить с цитированиемОтветить с цитированием  
04.10.2013, 16:17
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от hoz Посмотреть сообщение
Точно не пил? Как-то так:

PHP код:
      fOpenBuy dGreen iHigh(sSymboliTFKijun) &&
                  
dBid dRed &&
                  
dRed dBlue &&
                  
dBlue SenkouSpanA &&
                  
dBlue SenkouSpanB &&
                  (
dRed dBlue) > (dRedT dBlueT
Точно!
Да не, без скобок все работает. Невнимательность меня, как обычно, подвела, параметры Ишимоку на входе неверно задал Я поэтому и пишу Red, Blue, Green, что не запоминаю тенканы-киджуны.
Кстати, очень метко входит именно по этой комбинации - парад линий после креста.
ansol на форуме Ответить с цитированиемОтветить с цитированием  
04.10.2013, 16:22
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от Leonup Посмотреть сообщение
Здравствуйте!

Итог графы Прибыль в терминале показывает сумму прибыли или убытков.
Меня интересует сумма убытков. Допустим, по одному инструменту открыто несколько ордеров, и общий итог – Убыток.
И если OrderProfit() разделить на Point:
OrderProfit() / Point,
то ведь получится сумма убытка в пунктах (с учетом свопов)?
Если это правильно, то, странно, что в журнал выводятся огромные непонятные числа, например, order_profit (это у меня переменная) = -79092000.
Или по этой формуле рассчитывать неправильно? А тогда как будет правильно?
Спасибо.
Зачем это профит делить на Пойнт?
OrderProfit() выдает результат в валюте депозита, только складывай по всем ордерам и все
Свопы надо отдельно учитывать через OrderSwap(), комиссию через OrderCommision()
ansol на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (06.10.2013)
04.10.2013, 16:35
Аватар для Leonup
Leonup Новичок форума
Регистрация: 23.12.2011 / Сообщений: 58
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от ansol Посмотреть сообщение
Зачем это профит делить на Пойнт?
OrderProfit() выдает результат в валюте депозита, только складывай по всем ордерам и все
Свопы надо отдельно учитывать через OrderSwap(), комиссию через OrderCommision()
Мне нужна сумма убытков в пунктах, а т.к. открыты ордера по одной валютной паре, поэтому, думаю, надо делить всю сумму на Point.
Leonup вне форума Ответить с цитированиемОтветить с цитированием  
04.10.2013, 16:40
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от Leonup Посмотреть сообщение
Мне нужна сумма убытков в пунктах, а т.к. открыты ордера по одной валютной паре, поэтому, думаю, надо делить всю сумму на Point.

Надо хорошо подумать:
PHP код:
int iProfit OrderProfit()/(MarketInfo(Symbol(), MODE_TICKVALUE)*OrderLots()); 
Поинты тут ни при чем
ansol на форуме Ответить с цитированиемОтветить с цитированием  
04.10.2013, 17:17
Аватар для Leonup
Leonup Новичок форума
Регистрация: 23.12.2011 / Сообщений: 58
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от ansol Посмотреть сообщение

Надо хорошо подумать:
PHP код:
int iProfit OrderProfit()/(MarketInfo(Symbol(), MODE_TICKVALUE)*OrderLots()); 
Поинты тут ни при чем
И правда, ведь, надо было ХОРОШО подумать! Спасибо огромное!
Leonup вне форума Ответить с цитированиемОтветить с цитированием  
04.10.2013, 18:35
Аватар для hoz
hoz Активный участник
Регистрация: 01.04.2011 / Сообщений: 530
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
Точно!
Да не, без скобок все работает.
Не согласен. Без скобок другое условие уже. А работать может и без них...


Сообщение от ansol Посмотреть сообщение
Невнимательность меня, как обычно, подвела, параметры Ишимоку на входе неверно задал Я поэтому и пишу Red, Blue, Green, что не запоминаю тенканы-киджуны.
Кстати, очень метко входит именно по этой комбинации - парад линий после креста.
У нас вообще невнимательность - главный враг. Я свои косяки разгребал сколько раз, так чаще глупые ошибки, ежели что-то посерьёзнее. А ищем то обычно нечто такое, что типа сложное якобы.
Кстати, хз что там с Ишимоку, но мне машки ближе к телу.
hoz вне форума Ответить с цитированиемОтветить с цитированием  
04.10.2013, 18:37
Аватар для hoz
hoz Активный участник
Регистрация: 01.04.2011 / Сообщений: 530
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение

Надо хорошо подумать:
PHP код:
int iProfit OrderProfit()/(MarketInfo(Symbol(), MODE_TICKVALUE)*OrderLots()); 
Поинты тут ни при чем

Это что за изврат? На кой тик множить на лот?
Нужно получить суммарный профит?
hoz вне форума Ответить с цитированиемОтветить с цитированием  
04.10.2013, 20:05
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705

По умолчанию Господа проггеры - есть у вас сова самая простая?


малость подзабыл язык, из-за перерыва...хотел бы освежить память, от простого к сложному...есть у кого нибудь рабочая сова, с самым маленьким размером кода, работающая по любому алгоритму, а то глянешь внутрь и глаза разбегаются от обилия строчек кода))
самый простой Илан 1.6 динамик оказался в 433 строки кода, объемом 21килобайт...
если у кого есть такой сов, скиньте плиз в ветку, заранее СПАСИБО!

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 04.10.2013 в 20:09.
Milord вне форума Ответить с цитированиемОтветить с цитированием  
04.10.2013, 22:55
Аватар для virtuous
virtuous Прохожий
Регистрация: 04.10.2013 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
Здравствуйте!
Неделю назад начал изучать MQL4, много непонятно, поэтому понадобилась помощь опытных людей.
Сделал сетку из 4 отложенных ордеров в установленное время на пробой максимального и минимального значения:
покупка с фиксированным профитом и без профита и аналогичная продажа.

extern double Time_Open=; // Время открытия ордеров
extern double Lot=; // лот
extern double TP=; // тейк-профит, пунктов от текущей цены
extern int _Time_=; //количество баров для поиска High и Low

int start()
{
int Cur_Hour=Hour(); // Серверное время в часах
double Cur_Min = Minute(); // Серверное время в минутах
double Cur_time=Cur_Hour + Cur_Min/100; // Текущее время
double _High_=iHigh(NULL,PERIOD_M15,iHighest(NULL,PERIOD_ M15,MODE_HIGH,_Time_,1)); // находим значение High
double _Low_=iLow(NULL,PERIOD_M15,iLowest(NULL,PERIOD_M15 ,MODE_LOW,_Time_,1)); // находим значение Low

if (Time_Open==Cur_time) // Если наступило время события
{
int ticket1=OrderSend(Symbol(),OP_BUYSTOP,Lot,_High_,0 ,_Low_,_High_+TP*Point,0,0,0,Blue); //отложенный на покупку с ТП
int ticket2=OrderSend(Symbol(),OP_BUYSTOP,Lot,_High_,0 ,_Low_,0,0,0,0,Blue); //отложенный на покупку без ТП
int ticket3=OrderSend(Symbol(),OP_SELLSTOP,Lot,_Low_,0 ,_High_,_Low_-TP*Point,0,0,0,Red); //отложенный на продажу с ТП
int ticket4=OrderSend(Symbol(),OP_SELLSTOP,Lot,_Low_,0 ,_High_,0,0,0,0,Red); //отложенный на продажу без ТП
}

return;
}


Все работает, но в неограниченном количестве ) на тесте открылось 348 ордеров
Как их ограничить до требуемых 4.
Очень надеюсь на помощь, спасибо
virtuous вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 09:14
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705

По умолчанию помогите плиз найти ошибку???


тут накидал кусок кода совы, при компиляции выдает ошибку, не могу найти, гляньте своим зорким взглядом, может увидите...заранее СПАСИБО!
int start()
{
//----
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False )
{
if(Bid>iMA(NULL,0,MAPeriod, MAShift,MODE_EMA,PRICE_CLOSE,1);
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask-SL*Point,Ask+TP*Point,0,Magic,0,Green);
}
}

{
if(Bid<iMA(NULL,0,MAPeriod,MAShift,MODE_EMA,PRICE_ CLOSE,1);
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+SL*Point ,Bid-TP*Point,0,Magic,0,Green);
}
}
//----------------------------------------------
return(0);
}
будет ли в принципе этот кусок кода работать в сове?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 05.10.2013 в 09:47.
Milord вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 09:52
Аватар для Рыболов
Рыболов Новичок форума
Регистрация: 16.07.2013 / Сообщений: 24
Поблагодарили 14 раз(а) / Репутация: 15
int start()
{
//----
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False )
{
if(Bid>iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask-SL*Point,Ask+TP*Point,0,Magic,0,Green);
}
if(Bid<iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+SL*Point ,Bid-TP*Point,0,Magic,0,Green);
}

//----------------------------------------------
return(0);
}


помойму так лучше будет и можно без скобок если 1 оператор после if

Почисть историю личных сообщений а то отправить не могу тебе лс
Рыболов вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 13:13
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705
Сообщение от Рыболов Посмотреть сообщение
int start()
{
//----
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False )
{
if(Bid>iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask-SL*Point,Ask+TP*Point,0,Magic,0,Green);
}
if(Bid<iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+SL*Point ,Bid-TP*Point,0,Magic,0,Green);
}

//----------------------------------------------
return(0);
}


помойму так лучше будет и можно без скобок если 1 оператор после if

Почисть историю личных сообщений а то отправить не могу тебе лс
сообщения почистил....
код при компиляции стал выдавать 2 ошибки, вместо прежней 1-й)
не хватало 1й скобки фигурной, их число должно быть четным...но все равно выдает 1 ошибку
вот код что щас есть, число скобок четное, где ошибка непойму???
int start()
{
//----
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False )
{
if(Bid>iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask-SL*Point,Ask+TP*Point,0,Magic,0,Green);
}

if(Bid<iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+SL*Point ,Bid-TP*Point,0,Magic,0,Green);
}
}
/----------------------------------------------
return(0);
}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 05.10.2013 в 13:19.
Milord вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 14:38
Аватар для qqmber
qqmber Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от virtuous Посмотреть сообщение
Очень надеюсь на помощь, спасибо
Дорогой ньюб,
чтобы надеяться на помощь по логике, надо показывать код, компилирующийся без ошибок. Иначе это будет вопрос из серии "где я накосячил в синтаксисе".
extern double Time_Open=; // Время открытия ордеров
Вот это выше сразу мимо. Нельзя переменную инициализировать ничем.
qqmber вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 14:48
Аватар для qqmber
qqmber Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от Milord Посмотреть сообщение
if(Bid>iMA(Symbol(),PERIOD_H1,0,21,0,1,4,0))
Дважды.
И у iMA семь параметров, не восемь.
Я начинаю себя чувствовать нянем в детсаду
qqmber вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (05.10.2013)
05.10.2013, 15:37
Аватар для virtuous
virtuous Прохожий
Регистрация: 04.10.2013 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
Сообщение от qqmber Посмотреть сообщение
Дорогой ньюб,
чтобы надеяться на помощь по логике, надо показывать код, компилирующийся без ошибок. Иначе это будет вопрос из серии "где я накосячил в синтаксисе".
extern double Time_Open=; // Время открытия ордеров
Вот это выше сразу мимо. Нельзя переменную инициализировать ничем.
код компилируется без ошибок. я просто переменные не заполнял. достаточно было ввести время любое и количество баров для поиска и все заработало бы.
Очень долго ждал ответа, успел разобраться самостоятельно, сасибо за ответ.
С уважением, ньюб
virtuous вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 16:20
Аватар для Milord
Milord Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 702 раз(а) / Репутация: 705
Сообщение от qqmber Посмотреть сообщение
Дважды.
И у iMA семь параметров, не восемь.
Я начинаю себя чувствовать нянем в детсаду
благодарю!!!
ну что поделаешь, мы все няни друг другу...
просто видимо не выспался, не заметил, но и строчки брал с готовой совы, понадеялся что там нет ошибок)))

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума Ответить с цитированиемОтветить с цитированием  
05.10.2013, 18:42
Аватар для hoz
hoz Активный участник
Регистрация: 01.04.2011 / Сообщений: 530
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Сообщение от Milord Посмотреть сообщение
благодарю!!!
ну что поделаешь, мы все няни друг другу...
просто видимо не выспался, не заметил, но и строчки брал с готовой совы, понадеялся что там нет ошибок)))

Если не понимаете код, не нужно его брать. А если уж взяли, то досконально его изучайте, а не бездумно копируйте.
hoz вне форума Ответить с цитированиемОтветить с цитированием  
06.10.2013, 06:44
Аватар для Рыболов
Рыболов Новичок форума
Регистрация: 16.07.2013 / Сообщений: 24
Поблагодарили 14 раз(а) / Репутация: 15
Всем добрый день. Интересует вопрос как сделать вызов собственного индикатора из советника для получения данных с индикатора.

Понимаю что его нужно гдето объявить и потом обращаться для получения данных, но где объявлять и как обращаться непонятно... толи справку плохо читал то ли там этого нет, объясните пожайлуста кто разбирается желательно с примерами кода.
Рыболов вне форума Ответить с цитированиемОтветить с цитированием  
06.10.2013, 06:50
Аватар для expforex
expforex Программиров
Регистрация: 11.01.2009 / Сообщений: 2,134
Поблагодарили 2,093 раз(а) / Репутация: 2151
Сообщение от Рыболов Посмотреть сообщение
Всем добрый день. Интересует вопрос как сделать вызов собственного индикатора из советника для получения данных с индикатора.

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

на примере вполне известного индикатора:
double ExampleCustom=iCustom(Symbol(),0,"Moving Averages",20,0,MODE_SMA,shift); // Пример вызова пользовательского индикатора

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Советники на заказ! admin@expforex.com
Говорим Спасибо
expforex вне форума Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (06.10.2013), Рыболов (06.10.2013)
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 02:01. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO