Ответить
18.11.2012, 09:00
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
Сообщение от: Алекc1234
Спасибо большое. А не подскажете, как можно сделать, чтобы при Close[i] учитывалось бы несколько свечей. То есть скажем i равнялось бы от первой свечи до седьмой.
Точно не понял что вы хотите, но думаю так.
PHP код:
double prof[];

for(
int i=1;i<8;i++)
{
prof[i]= (Close[i]-OrderOpenPrice())/Point;



Последний раз редактировалось eevviill; 18.11.2012 в 09:01. Причина: php
18.11.2012, 12:47
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Ещё один вопрос, если можно. Как написать - определённая свеча(скажем четвёртая) от открытия ордера? То есть ордер открылся и мы находим четвёртую свечу от этого открытия...
18.11.2012, 13:51
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
Сообщение от: Алекc1234
Ещё один вопрос, если можно. Как написать - определённая свеча(скажем четвёртая) от открытия ордера? То есть ордер открылся и мы находим четвёртую свечу от этого открытия...
Думаю надо использовать OrderOpenTime().
18.11.2012, 13:56
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Думаю надо использовать OrderOpenTime().
Я так и думал, но как от OrderOpenTime() осчитывать свечи - не знаю
18.11.2012, 14:13
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
Сообщение от: Алекc1234
Я так и думал, но как от OrderOpenTime() осчитывать свечи - не знаю
PHP код:
iBarShift(NULL,0,OrderOpenTime()); 

Последний раз редактировалось eevviill; 18.11.2012 в 14:22. Причина: php
18.11.2012, 14:22
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
Можна так ещё узнавать время открытия.

PHP код:
TimeHour(OrderOpenTime())
TimeMinute(OrderOpenTime()) 
18.11.2012, 18:07
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Можна так ещё узнавать время открытия.

PHP код:
TimeHour(OrderOpenTime())
TimeMinute(OrderOpenTime()) 
Время открытия узнали. Теперь как узнать какая свеча, допустим, четвёртая после времени открытия?
18.11.2012, 18:10
Регистрация: 13.03.2009 / Сообщений: 2,357
Поблагодарили 1,965 раз(а) / Репутация: 2042
Сообщение от: Алекc1234
Время открытия узнали. Теперь как узнать какая свеча, допустим, четвёртая после времени открытия?
Так ответил же уже
PHP код:
iBarShift(NULL,0,OrderOpenTime()); 
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
18.11.2012, 18:16
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Так ответил же уже
Я полный новичок в программировании. Ещё многого не знаю. И мне кажется, что это мы определили свечу, на которой открылся ордер. А как определить четвёртую свечу после открытия?
18.11.2012, 18:24
Регистрация: 13.03.2009 / Сообщений: 2,357
Поблагодарили 1,965 раз(а) / Репутация: 2042
Сообщение от: Алекc1234
Я полный новичок в программировании. Ещё многого не знаю. И мне кажется, что это мы определили свечу, на которой открылся ордер. А как определить четвёртую свечу после открытия?
Вычти 4
Код:
iBarShift(NULL,0,OrderOpenTime())-4;
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
18.11.2012, 18:30
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Вычти 4
Код:
iBarShift(NULL,0,OrderOpenTime())-4;
А, спасибо большое, понятно
19.11.2012, 15:25
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Здравствуйте. Подскажите, если открыто несколько рыночных ордеров, то как в коде написать цену первого открытого ордера? То есть OderOpenPrice() первого по времени открытого ордера.
19.11.2012, 15:39
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
Сообщение от: Алекc1234
Здравствуйте. Подскажите, если открыто несколько рыночных ордеров, то как в коде написать цену первого открытого ордера? То есть OderOpenPrice() первого по времени открытого ордера.
PHP код:
 OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
   
double fir_or_pr=OrderOpenPrice(); 
19.11.2012, 15:47
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
PHP код:
 OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
   
double fir_or_pr=OrderOpenPrice(); 
eevviill - Вам огромное спасибо - всегда мне помогаете, жаль, что я ещё ничего не смог заработать, иначе отблагодарил бы Вас и материально. Вообщем, большой Вам респект! Я и на других форумах участвую, но только здесь Вы всегда отвечаете и выручаете!!!
19.11.2012, 19:50
Аватар для greatiger
greatiger greatiger вне форума Активный участник
Регистрация: 06.02.2010 / Сообщений: 490
Поблагодарили 67 раз(а) / Репутация: 68
Научите приделывать ММ к советникам как-нибудь попроще...есть может какие стандартные функции,которые можно в код подставлять?

И макс.лот бы еще
19.11.2012, 19:59
Аватар для Алекc1234
Алекc1234 Алекc1234 вне форума Местный житель
Регистрация: 24.03.2011 / Сообщений: 697
Поблагодарили 276 раз(а) / Репутация: 276
Научите приделывать ММ к советникам как-нибудь попроще...есть может какие стандартные функции,которые можно в код подставлять?

И макс.лот бы еще
Я вставляю ММ в сову так:
extern bool Use_MM = true;
extern double K = 0.02;
Lot = 0.1;
if (Use_MM)
{
Lots = K*AccountBalance()/100;
double lotstep = MarketInfo(Symbol(),MODE_LOTSTEP);
Lots = MathRound(Lots/lotstep)*lotstep;
}
else Lots=Lot;
Предпоследние две строчки - это округление лота в большую сторону

Последний раз редактировалось Алекc1234; 19.11.2012 в 20:44.
19.11.2012, 21:14
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
Научите приделывать ММ к советникам как-нибудь попроще...есть может какие стандартные функции,которые можно в код подставлять?
...
В глобальные переменные
PHP код:
extern double Lot 0.1;
extern bool use_percent_of_deposit false;
extern double Risk 1
В Старт
PHP код:
 //расчёт лота от % депозита
 
if(use_percent_of_depositLot=GetLot(); 
Функция
PHP код:
///////////////////////////////////////////////////////////////////////////////////////
double GetLot()
{
 
double Free    =AccountFreeMargin();
 
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
 
double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
 
double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
 
double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
 
double Lot     =MathFloor(Free*Risk/100/One_Lot/Step)*Step;
 if(
Lot<Min_LotLot=Min_Lot;
 if(
Lot>Max_LotLot=Max_Lot;
 if(
Lot*One_Lot>Free) return(0.0);
 
return(
Lot);


Последний раз редактировалось eevviill; 19.11.2012 в 21:48.
19.11.2012, 21:47
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,031 раз(а) / Репутация: 9031
  • Отправить сообщение для eevviill с помощью Skype™
...
И макс.лот бы еще
1) Ищешь ОрдерСенд.
2) Смотришь что там стоит в третем значении. Пример. OrderSend(Symbol,1,g_lots_142,...)
3)Ставишь перед OrderSend
PHP код:
if(g_lots_142<=Max_lots)
{
OrderSend(Symbol,1,g_lots_142,...)

21.11.2012, 16:00
Аватар для greatiger
greatiger greatiger вне форума Активный участник
Регистрация: 06.02.2010 / Сообщений: 490
Поблагодарили 67 раз(а) / Репутация: 68
Есть первый самостоятельный ММ хоть и не без небольшой самодеятельности и труда рыбка потащилась )
21.11.2012, 17:55
Аватар для greatiger
greatiger greatiger вне форума Активный участник
Регистрация: 06.02.2010 / Сообщений: 490
Поблагодарили 67 раз(а) / Репутация: 68
Цитата:
Ставишь перед OrderSend
PHP код:
if(g_lots_142<=Max_lots)
{
OrderSend(Symbol,1,g_lots_142,...)
}
eevviill, а Max_lots не надо как вводимую переменную в начале прописывать?
Ответить

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


Опции темы

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

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



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


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