Ответить
06.11.2015, 16:09
Аватар для Viko2000
Viko2000 Viko2000 вне форума Почётный гражданин
Регистрация: 22.02.2012 / Сообщений: 437
Поблагодарили 446 раз(а) / Репутация: 447
одинаковых???? Просто в одной сове все настройки умножь на 2
А ты по пробуй сам так сделать. Будет красотища.)))
Я уже писал это целая наука. На пальцах не объяснить. ))) Будет код, будет результат. И все в итоге увидят, как это можно сделать. А не будет кода. Можно дальше придумывать теории мироздания.))
gush 
06.11.2015, 18:13
Аватар для gush
gush gush вне форума бродяга
Регистрация: 24.01.2011 / Сообщений: 2,521
Поблагодарили 5,292 раз(а) / Репутация: 5508
я так с одной совой запарился..
подскажите как лучше сделать..
сова страховщик, сама не торгуют, а следит за открываемыми позами и если таковые появляются, - выставляет к ним страховку в виде отложек..

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

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")
//|                                              функция открытия ордеров                                             |
//+-------------------------------------------------------------------------------------------------------------------+ 
больше молока получит тот котенок, который больше всех пищит..
10.11.2015, 07:26
Аватар для bucknbard
bucknbard bucknbard вне форума Интересующийся
Регистрация: 15.08.2011 / Сообщений: 5
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
уважаемые знатоки, подскажите пожалуйста алгоритм работы индикатора
Frolov 
12.11.2015, 11:48
Аватар для Paragon
Paragon Paragon вне форума Местный знаток
Регистрация: 24.01.2010 / Адрес: Киев-мать городов руских / Сообщений: 360
Поблагодарили 584 раз(а) / Репутация: 586
Господа,приветствую Вас!
Подскажите мне,начинающему дилетанту, строчку кода, где:
при старте открываются два рыночных ордера по такому коду

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

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--;
}
}
}
[свернуть]


требуется вставить строчку кода, где при закрытии по профиту в % любого из двух ордеров,моментально повторить открытие новых рыночных ордеров бай и селл.
Такой сценарий работает постоянно,пока не закроется по общему профиту в % от депо.
Функции закрытия по профиту/просадка в % ордера и функции закрытия по общему профиту/просадка в % в боте имеется,как раздельные.
Тема или речь о якобы не целесообразности или бессмысленности данной стратегии не подымайте,наслышан и сам знаю, но у меня свои представления и взгляд под углом.
Для меня важен пост о отдельной строчки кода открытия рыночных ордеров в момент закрытия по профиту(не по общему профиту) одного из двух рыночных,еще лучше:
в момент когда нужно закрыть по профиту ордер в первую очередь открыть новые рыночные ордера,а потом моментально закрыть сам ордер .
Спасибо за внимание.
"На Руси будет великая радость - возвращение короны и принятие под корону всего большого древа. Три ветви древа сольются воедино после бегства бесовского и единое древо будет"
================================================== ===============================================
13.11.2015, 09:35
Аватар для Iskander24
Iskander24 Iskander24 вне форума Прохожий
Регистрация: 24.03.2014 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
Подскажите пожалуйста жертве технического прогресса. Как заставить на Параболике (SAR), открывать ордера. На том месте где стоит белая точка, открыть ордер. Неважно какой, отложку или рынок...
13.11.2015, 13:03
Аватар для Frolov
Frolov Frolov вне форума Новичок форума
Регистрация: 06.11.2010 / Сообщений: 43
Поблагодарили 23 раз(а) / Репутация: 24
Здравствуйте , уважаемые программисты.
Подскажите пожалуйста код функции на проверку типа последнего закрытого ордера ( не важно за какое время : за последний час , последние 24 часа или последние 48 часов). Нужно чтобы советник проверил тип последнего закрытого ордера и не открывался в туже сторону . Ордера должны быть Buy, Sell, Buy, Sell.
Спасибо
13.11.2015, 14:17
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Здравствуйте , уважаемые программисты.
Подскажите пожалуйста код функции на проверку типа последнего закрытого ордера ( не важно за какое время : за последний час , последние 24 часа или последние 48 часов). Нужно чтобы советник проверил тип последнего закрытого ордера и не открывался в туже сторону . Ордера должны быть Buy, Sell, Buy, Sell.
Спасибо
_http://forum.mql4.com/ru/38949/page4#434227
Frolov 
14.11.2015, 17:49
Аватар для _SERG_
_SERG_ _SERG_ на форуме Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Подскажите пожалуйста жертве технического прогресса. Как заставить на Параболике (SAR), открывать ордера. На том месте где стоит белая точка, открыть ордер. Неважно какой, отложку или рынок...

А "точка" у тебя сколько времени? (минута, час, день?)
Тут и в начале и в средине и в конце и по другому можно, по времени, или есть ещё критерии по цене?.
15.11.2015, 16:26
Аватар для Iskander24
Iskander24 Iskander24 вне форума Прохожий
Регистрация: 24.03.2014 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
А "точка" у тебя сколько времени? (минута, час, день?)
Тут и в начале и в средине и в конце и по другому можно, по времени, или есть ещё критерии по цене?.
Мне нужно чтобы ордер стоял на последней появившейся точке. Допустим на часовом, или текущем графике, стоит отложка на текущем баре и если эта точка переносится, то следом идет и ордер. А если рыночный ордер, то он открывается когда текущая цена равна или пересекается с текущим показанием SAR.
15.11.2015, 16:59
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Мне нужно чтобы ордер стоял на последней появившейся точке. Допустим на часовом, или текущем графике, стоит отложка на текущем баре и если эта точка переносится, то следом идет и ордер. А если рыночный ордер, то он открывается когда текущая цена равна или пересекается с текущим показанием SAR.
А в чём проблема-то??? -http://docs.mql4.com/ru/indicators/isar всё понятно описано. Получай значение индикатора и ставь туда ордер...
17.11.2015, 00:11
Аватар для Dobryj
Dobryj Dobryj вне форума Почётный гражданин
Регистрация: 07.06.2012 / Сообщений: 222
Поблагодарили 294 раз(а) / Репутация: 326

По умолчанию 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.
17.11.2015, 05:46
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Ситуация в следующем задался целью оформить одну из идей в коде , оказалось не так уж и просто для моего уровня знания языка 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 переменных, а массив.
20.11.2015, 13:45
Аватар для samuil11
samuil11 samuil11 вне форума Активный участник
Регистрация: 21.01.2010 / Сообщений: 55
Поблагодарили 47 раз(а) / Репутация: 48
День добрый !
Пожалуйста помогите написать функцию (для внедрения в код советника)
или простой Советник с УСЛОВИЕМ :

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

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

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

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

Подскажите пожалуйста как сделать чтобы советник брал показания индикаторов в момент закрытия текущего бара
21.11.2015, 11:54
Аватар для CastEt
CastEt CastEt вне форума Активный участник
Регистрация: 19.10.2012 / Адрес: мАсква-рИка, сердце упокоит на века :-) / Сообщений: 159
Поблагодарили 53 раз(а) / Репутация: 51
момент закрытия текущего бара = момент открытия нового

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

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


Опции темы

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

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



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


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