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

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


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

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от 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   #1763 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от Leonup Посмотреть сообщение
Здравствуйте!

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от Leonup Посмотреть сообщение
Мне нужна сумма убытков в пунктах, а т.к. открыты ордера по одной валютной паре, поэтому, думаю, надо делить всю сумму на Point.

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

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


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

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

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

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


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

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

Последний раз редактировалось Milord; 04.10.2013 в 20:09.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.10.2013, 22:55   #1770 (permalink)
Прохожий
 
Аватар для virtuous
 
Регистрация: 04.10.2013
Сообщений: 2
Репутация: 1
virtuous
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Здравствуйте!
Неделю назад начал изучать 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   #1771 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547

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


тут накидал кусок кода совы, при компиляции выдает ошибку, не могу найти, гляньте своим зорким взглядом, может увидите...заранее СПАСИБО!
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   #1772 (permalink)
Новичок форума
 
Аватар для Рыболов
 
Регистрация: 16.07.2013
Сообщений: 24
Репутация: 15
Рыболов
Сказал(а) спасибо: 24
Поблагодарили 14 раз(а) в 5 сообщениях
Поинты: 36
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   #1773 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от Рыболов Посмотреть сообщение
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   #1774 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от virtuous Посмотреть сообщение
Очень надеюсь на помощь, спасибо
Дорогой ньюб,
чтобы надеяться на помощь по логике, надо показывать код, компилирующийся без ошибок. Иначе это будет вопрос из серии "где я накосячил в синтаксисе".
extern double Time_Open=; // Время открытия ордеров
Вот это выше сразу мимо. Нельзя переменную инициализировать ничем.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 05.10.2013, 14:48   #1775 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от 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   #1776 (permalink)
Прохожий
 
Аватар для virtuous
 
Регистрация: 04.10.2013
Сообщений: 2
Репутация: 1
virtuous
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Сообщение от qqmber Посмотреть сообщение
Дорогой ньюб,
чтобы надеяться на помощь по логике, надо показывать код, компилирующийся без ошибок. Иначе это будет вопрос из серии "где я накосячил в синтаксисе".
extern double Time_Open=; // Время открытия ордеров
Вот это выше сразу мимо. Нельзя переменную инициализировать ничем.
код компилируется без ошибок. я просто переменные не заполнял. достаточно было ввести время любое и количество баров для поиска и все заработало бы.
Очень долго ждал ответа, успел разобраться самостоятельно, сасибо за ответ.
С уважением, ньюб
virtuous вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 05.10.2013, 16:20   #1777 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от qqmber Посмотреть сообщение
Дважды.
И у iMA семь параметров, не восемь.
Я начинаю себя чувствовать нянем в детсаду
благодарю!!!
ну что поделаешь, мы все няни друг другу...
просто видимо не выспался, не заметил, но и строчки брал с готовой совы, понадеялся что там нет ошибок)))

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

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

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

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

на примере вполне известного индикатора:
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 Выкл.



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


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