Ответ
 
Опции темы
Старый 06.11.2015, 16:09   #4361 (permalink)
Почётный гражданин
 
Аватар для Viko2000
 
Регистрация: 22.02.2012
Сообщений: 431
Репутация: 442
Viko2000 - Viko2000 - Viko2000 - Viko2000 - Viko2000 -
Сказал(а) спасибо: 1,348
Поблагодарили 441 раз(а) в 170 сообщениях
Поинты: 430
Сообщение от gush Посмотреть сообщение
одинаковых???? Просто в одной сове все настройки умножь на 2
А ты по пробуй сам так сделать. Будет красотища.)))
Я уже писал это целая наука. На пальцах не объяснить. ))) Будет код, будет результат. И все в итоге увидят, как это можно сделать. А не будет кода. Можно дальше придумывать теории мироздания.))
Viko2000 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
gush (06.11.2015)
Старый 06.11.2015, 18:13   #4362 (permalink)
бродяга
 
Аватар для gush
 
Регистрация: 24.01.2011
Сообщений: 2,520
Репутация: 5506
gush gush gush gush gush gush gush gush gush gush gush
Сказал(а) спасибо: 8,488
Поблагодарили 5,290 раз(а) в 1,871 сообщениях
Поинты: 1124
я так с одной совой запарился..
подскажите как лучше сделать..
сова страховщик, сама не торгуют, а следит за открываемыми позами и если таковые появляются, - выставляет к ним страховку в виде отложек..

как лучше заставить ее торговать? Открывать ордера, чтобы начать торговлю..
Хотелось чтобы была проверка на открытые ордера, если они есть, то ничего не открывать, а ставить только страховки..
добавить открытие бай и селл одновременно..
вот блок кода по открытию страховок:

PHP код:
//+-------------------------------------------------------------------------------------------------------------------+
//|    функция открытия ордеров   

void open_positions(int signaldouble lotdouble price=0.0string symb="NONE"string comm="NONE") {
  
//signal=0 -> сигнал на открытие покупки
  //signal=1 -> сигнал на открытие продажи
  /* extern */ 
int Count_Of_Trade_Try=5Pause_Of_Trade_Try=5;

  
int    i 0//переменная для счётчика цикла

  
symb=Symbol();
  if(
signal==0)
    
price=MarketInfo(symb,MODE_ASK); //цена открытия для покупок
  
if(signal==1)
    
price=MarketInfo(symb,MODE_BID); //цена открытия для продаж

  
while(i<=Count_Of_Trade_Try) {
    
//сама функия открытия ордера (встроенная). Для удобства восприятия параметры разнесены на разные строки:
    
int ticket OrderSend(Symbol(),      //символ
                           
signal,        //тип ордера
                           
lot,           //объем
                           
price,         //цена открытия
                           
Slipage,       //уровень допустимого реквота
                           
sl(SL,signal,symb,price), //величина Stop Loss
                           
tp(TP,signal,symb,price), //величина Take Profit
                           
comm//комментарий ордера
                           
Magic_Number,  //магическое число
                           
0,             //срок истечения (используется при отложенных ордерах)
                           
CLR_NONE);     //цвет отображаемой стрелки на графике (CLR_NONE - стрелка не рисуется)
    
if(ticket!=-1//если открытие произошло успешно, наносим графический объект и выходим из цикла
      
break;
    
int err=GetLastError(); 
    if(
err!=0) Print("Ошибка: "+Market_Err_To_Str(err));
    
i++;
    
Sleep(Pause_Of_Trade_Try*100); //в случае ошибки делаем паузу перед новой попыткой
  
//end while(i<=count)
//end void open_positions(int signal, double lot, double price=0.0, string symb="NONE")
//|                                              функция открытия ордеров                                             |
//+-------------------------------------------------------------------------------------------------------------------+ 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
больше молока получит тот котенок, который больше всех пищит..
gush вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.11.2015, 07:26   #4363 (permalink)
Интересующийся
 
Аватар для bucknbard
 
Регистрация: 15.08.2011
Сообщений: 5
Репутация: 2
bucknbard
Сказал(а) спасибо: 29
Поблагодарили 1 раз в 1 сообщении
Поинты: 0
уважаемые знатоки, подскажите пожалуйста алгоритм работы индикатора
Миниатюры:
Нажмите на изображение для увеличения
Название: eurusd-m1.png
Просмотров: 42
Размер:	39.4 Кб
ID:	225061  
Вложения:
Тип файла: mq4 Vertex alerts nmc 1.01.mq4 (4.4 Кб, 15 просмотров)
bucknbard вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Frolov (13.11.2015)
Старый 12.11.2015, 11:48   #4364 (permalink)
Местный знаток
 
Аватар для Paragon
 
Регистрация: 24.01.2010
Адрес: Киев-мать городов руских
Сообщений: 357
Репутация: 585
Paragon - Paragon - Paragon - Paragon - Paragon - Paragon -
Сказал(а) спасибо: 570
Поблагодарили 583 раз(а) в 187 сообщениях
Поинты: 502
Господа,приветствую Вас!
Подскажите мне,начинающему дилетанту, строчку кода, где:
при старте открываются два рыночных ордера по такому коду

Скрытый текст

for(i=1;i<=1;i++)//i<=n,где n=количество ордеров
{
if(i==1) {sizelot=Lot;} else {sizelot=sizelot;}
n=3;
Ticket=-1;
while(Ticket<0 && n>0)
{
while(IsTradeContextBusy()) Sleep(500);
Ticket=OrderSend(Symbol(),OP_BUY,sizelot,NormalizeDouble(Ask,Digits),3,0,0,"buy_stop_"+i,magic_buy,0,Blue);
n--;
}
n=3;
Ticket=-1;
while(Ticket<0 && n>0)
{
while(IsTradeContextBusy()) Sleep(500);
Ticket=OrderSend(Symbol(),OP_SELL,sizelot,NormalizeDouble(Bid,Digits),3,0,0,"sell_stop_"+i,magic_sell,0,Red);
n--;
}
}
}
[свернуть]


требуется вставить строчку кода, где при закрытии по профиту в % любого из двух ордеров,моментально повторить открытие новых рыночных ордеров бай и селл.
Такой сценарий работает постоянно,пока не закроется по общему профиту в % от депо.
Функции закрытия по профиту/просадка в % ордера и функции закрытия по общему профиту/просадка в % в боте имеется,как раздельные.
Тема или речь о якобы не целесообразности или бессмысленности данной стратегии не подымайте,наслышан и сам знаю, но у меня свои представления и взгляд под углом.
Для меня важен пост о отдельной строчки кода открытия рыночных ордеров в момент закрытия по профиту(не по общему профиту) одного из двух рыночных,еще лучше:
в момент когда нужно закрыть по профиту ордер в первую очередь открыть новые рыночные ордера,а потом моментально закрыть сам ордер .
Спасибо за внимание.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
"На Руси будет великая радость - возвращение короны и принятие под корону всего большого древа. Три ветви древа сольются воедино после бегства бесовского и единое древо будет"
================================================== ===============================================
Paragon вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2015, 09:35   #4365 (permalink)
Прохожий
 
Аватар для Iskander24
 
Регистрация: 24.03.2014
Сообщений: 2
Репутация: 1
Iskander24
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Подскажите пожалуйста жертве технического прогресса. Как заставить на Параболике (SAR), открывать ордера. На том месте где стоит белая точка, открыть ордер. Неважно какой, отложку или рынок...
Iskander24 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2015, 13:03   #4366 (permalink)
Новичок форума
 
Аватар для Frolov
 
Регистрация: 06.11.2010
Сообщений: 43
Репутация: 24
Frolov
Сказал(а) спасибо: 428
Поблагодарили 23 раз(а) в 8 сообщениях
Поинты: 40
Здравствуйте , уважаемые программисты.
Подскажите пожалуйста код функции на проверку типа последнего закрытого ордера ( не важно за какое время : за последний час , последние 24 часа или последние 48 часов). Нужно чтобы советник проверил тип последнего закрытого ордера и не открывался в туже сторону . Ордера должны быть Buy, Sell, Buy, Sell.
Спасибо
Frolov вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2015, 14:17   #4367 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Сообщение от Frolov Посмотреть сообщение
Здравствуйте , уважаемые программисты.
Подскажите пожалуйста код функции на проверку типа последнего закрытого ордера ( не важно за какое время : за последний час , последние 24 часа или последние 48 часов). Нужно чтобы советник проверил тип последнего закрытого ордера и не открывался в туже сторону . Ордера должны быть Buy, Sell, Buy, Sell.
Спасибо
_http://forum.mql4.com/ru/38949/page4#434227
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Frolov (13.11.2015)
Старый 14.11.2015, 17:49   #4368 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 241
Репутация: 74
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 74 раз(а) в 60 сообщениях
Поинты: 282
Сообщение от Iskander24 Посмотреть сообщение
Подскажите пожалуйста жертве технического прогресса. Как заставить на Параболике (SAR), открывать ордера. На том месте где стоит белая точка, открыть ордер. Неважно какой, отложку или рынок...

А "точка" у тебя сколько времени? (минута, час, день?)
Тут и в начале и в средине и в конце и по другому можно, по времени, или есть ещё критерии по цене?.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.11.2015, 16:26   #4369 (permalink)
Прохожий
 
Аватар для Iskander24
 
Регистрация: 24.03.2014
Сообщений: 2
Репутация: 1
Iskander24
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Сообщение от _SERG_ Посмотреть сообщение
А "точка" у тебя сколько времени? (минута, час, день?)
Тут и в начале и в средине и в конце и по другому можно, по времени, или есть ещё критерии по цене?.
Мне нужно чтобы ордер стоял на последней появившейся точке. Допустим на часовом, или текущем графике, стоит отложка на текущем баре и если эта точка переносится, то следом идет и ордер. А если рыночный ордер, то он открывается когда текущая цена равна или пересекается с текущим показанием SAR.
Iskander24 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.11.2015, 16:59   #4370 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от Iskander24 Посмотреть сообщение
Мне нужно чтобы ордер стоял на последней появившейся точке. Допустим на часовом, или текущем графике, стоит отложка на текущем баре и если эта точка переносится, то следом идет и ордер. А если рыночный ордер, то он открывается когда текущая цена равна или пересекается с текущим показанием SAR.
А в чём проблема-то??? -http://docs.mql4.com/ru/indicators/isar всё понятно описано. Получай значение индикатора и ставь туда ордер...
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
DomovenokBrest (15.11.2015)
Старый 17.11.2015, 00:11   #4371 (permalink)
Почётный гражданин
 
Аватар для Dobryj
 
Регистрация: 07.06.2012
Сообщений: 222
Репутация: 325
Dobryj Dobryj Dobryj Dobryj
Сказал(а) спасибо: 384
Поблагодарили 293 раз(а) в 127 сообщениях
Поинты: 100

По умолчанию Help


Ситуация в следующем задался целью оформить одну из идей в коде , оказалось не так уж и просто для моего уровня знания языка Mql4 .
Cмысл функции в том что бы из даты в формате D'1980.07.19 12:30:27';
извлечь каждую цифру в отдельную переменную , на данном этапе написания остановился на этом :

extern datetime time=D'2015.11.16 00:00';
int init()
{
string www= TimeToString(time,TIME_DATE|TIME_MINUTES);//преобразование в переменную типа string
Comment(www);
return(0);

}
Подскажите пожалуйста как можно реализовать эту идею в код , заполнив 12 переменных нужными значениями типа int ?
q=2; t=1; a=0;
w=0; y=1; s=0;
e=1; u=1; d=0;
r=5; i= 6; f=0;

Последний раз редактировалось Dobryj; 17.11.2015 в 00:13.
Dobryj вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.11.2015, 05:46   #4372 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от Dobryj Посмотреть сообщение
Ситуация в следующем задался целью оформить одну из идей в коде , оказалось не так уж и просто для моего уровня знания языка Mql4 .
Cмысл функции в том что бы из даты в формате D'1980.07.19 12:30:27';
извлечь каждую цифру в отдельную переменную , на данном этапе написания остановился на этом :

extern datetime time=D'2015.11.16 00:00';
int init()
{
string www= TimeToString(time,TIME_DATE|TIME_MINUTES);//преобразование в переменную типа string
Comment(www);
return(0);

}
Подскажите пожалуйста как можно реализовать эту идею в код , заполнив 12 переменных нужными значениями типа int ?
q=2; t=1; a=0;
w=0; y=1; s=0;
e=1; u=1; d=0;
r=5; i= 6; f=0;
-http://docs.mql4.com/ru/strings/stringsubstr
Надеюсь сам всё поймёшь. Если нет задавай уточняющие вопросы.
Но на мой взгляд, лучше не 12 переменных, а массив.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Dobryj (17.11.2015), DomovenokBrest (17.11.2015)
Старый 20.11.2015, 13:45   #4373 (permalink)
Активный участник
 
Аватар для samuil11
 
Регистрация: 21.01.2010
Сообщений: 55
Репутация: 47
samuil11
Сказал(а) спасибо: 183
Поблагодарили 46 раз(а) в 12 сообщениях
Поинты: 54
День добрый !
Пожалуйста помогите написать функцию (для внедрения в код советника)
или простой Советник с УСЛОВИЕМ :

Если есть ДВА РАЗНОНАПРАВЛЕННЫХ Отложенных ордера и если один из ордеров выполняется (открывается позиция)--- то другой противоположный Отложенный ордер должен удалиться.

НАПРИМЕР --- установились ДВА : БайЛимит и СеллЛимит --- если открывается БайЛимит , тогда СеллЛимит должен удалиться.
и наоборот --- если СеллЛимит открывается --- то БайЛимит должен удалиться

Не получается сделать (не пойму) как можно программно проследить открытие ОТЛОЖЕННОГО ордера БайЛимит (или СеллЛимит) , чтобы сразу удалить другой противоположный Отложеник
Заранее большое СПАСИБО !
samuil11 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.11.2015, 02:32   #4374 (permalink)
Прохожий
 
Аватар для ddima200
 
Регистрация: 08.01.2015
Сообщений: 2
Репутация: 1
ddima200
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 2
Отправить сообщение для ddima200 с помощью Skype™
Подскажите как правильно открыть ОДИН ордер не текущей свече
ddima200 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.11.2015, 10:20   #4375 (permalink)
Интересующийся
 
Аватар для Pepelac
 
Регистрация: 18.10.2012
Сообщений: 15
Репутация: 2
Pepelac
Сказал(а) спасибо: 29
Поблагодарили 1 раз в 1 сообщении
Поинты: 8

По умолчанию Подскажите как сделать чтобы советник дожидался закрытия текущего бара


Подскажите пожалуйста как сделать чтобы советник брал показания индикаторов в момент закрытия текущего бара
Pepelac вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.11.2015, 11:54   #4376 (permalink)
Активный участник
 
Аватар для CastEt
 
Регистрация: 19.10.2012
Адрес: мАсква-рИка, сердце упокоит на века :-)
Сообщений: 160
Репутация: 51
CastEt
Сказал(а) спасибо: 8
Поблагодарили 53 раз(а) в 30 сообщениях
Поинты: 106
момент закрытия текущего бара = момент открытия нового

if(Time[0]>PrevTime)
{
PrevTime=Time[0];
и далее берём значение индюка с индексом 1, ибо 0 - это уже новый бар
CastEt вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Pepelac (21.11.2015)
Старый 21.11.2015, 19:06   #4377 (permalink)
Интересующийся
 
Аватар для Pepelac
 
Регистрация: 18.10.2012
Сообщений: 15
Репутация: 2
Pepelac
Сказал(а) спасибо: 29
Поблагодарили 1 раз в 1 сообщении
Поинты: 8
откуда берется PrevTime не понял
Pepelac вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.11.2015, 19:12   #4378 (permalink)
Активный участник
 
Аватар для CastEt
 
Регистрация: 19.10.2012
Адрес: мАсква-рИка, сердце упокоит на века :-)
Сообщений: 160
Репутация: 51
CastEt
Сказал(а) спасибо: 8
Поблагодарили 53 раз(а) в 30 сообщениях
Поинты: 106
Объявляется где-нибудь выше, желательно в самом начале, сразу после external-ов
например, напиши int PrevTime=0; и будет тебе благо...
CastEt вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Pepelac (22.11.2015)
Старый 22.11.2015, 06:37   #4379 (permalink)
Интересующийся
 
Аватар для Pepelac
 
Регистрация: 18.10.2012
Сообщений: 15
Репутация: 2
Pepelac
Сказал(а) спасибо: 29
Поблагодарили 1 раз в 1 сообщении
Поинты: 8
Большое спасибо! Все работает )
Pepelac вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.11.2015, 15:18   #4380 (permalink)
Новичок форума
 
Аватар для Andy200577
 
Регистрация: 20.06.2012
Сообщений: 57
Репутация: 9
Andy200577
Сказал(а) спасибо: 3
Поблагодарили 8 раз(а) в 6 сообщениях
Поинты: 90
Уважаемые программисты.
Хочу задать вопрос по поводу расчеты тех или иных индикаторов на исторических данных.
Допустим мы вычисляем iRSI(..), можно ли вычислить индюк например на 3ей свече в тот момент, когда она была еще текущей, после закрытия свечи стала первой и т.д.?
Т.е. при движении цены значения rsi даже на предыдущих свечах меняются, можно ли как то эмулировать с помощью mql образование баров (пусть даже без учета тиков) и последовательно вычислять индикатор и отслеживать его изменение после образования следующих баров?
Спасибо.
Andy200577 вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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