Ответ
 
Опции темы
Старый 26.05.2015, 06:45   #3901 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от vladradon Посмотреть сообщение
Может просто эти строки нужно не в Онините прописать, а в Онтике в первых строках (Старте) - тогда сов не будет работать, а в Онините прошла проверка или нет, только ретерн что-то выдал и все, дальше сов работает.
MT4 build 765 (12 Dec 2014) при неверном счете выдает:
2015.05.26 11:42:33.090 AnSol-ZOG3 EURUSD,M5: initialization failed (32767)
2015.05.26 11:42:33.090 AnSol-ZOG3 EURUSD,M5: uninit reason 8
2015.05.26 11:42:35.079 Expert AnSol-ZOG3 EURUSD,M5: removed

И никто никуда не работает.
Все проверено, с какой целью спорите?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.05.2015, 07:08   #3902 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 105
Репутация: 38
vladradon
Сказал(а) спасибо: 23
Поблагодарили 38 раз(а) в 26 сообщениях
Поинты: 170
Сообщение от AlexeyVik Посмотреть сообщение
Лучше в ините по условию несовпадения номера счёта выполнить ExpertRemove();
Только я заметил такую особенность, сначала выполняется весь код, а потом советник выгружается. Тоесть если в ините прописано открытие ордеров, то они будут открыты независимо от того, что ExpertRemove(); прописан раньше чем OrderSend() и условие выгрузки советника выполнено.
Согласен - пока редактировал свое сообщение, ты мои мысли прописал...))) Только в Онините не будут выполняться команды по торговле, поэтому не вижу разницы куда втыкать ExpertRemove() - в Онинит или в начало Онтик (Старт). Этот вопрос не так давно уже обсуждался несколько страниц назад и я там предложил как раз подбные варианты.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.05.2015, 07:14   #3903 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 105
Репутация: 38
vladradon
Сказал(а) спасибо: 23
Поблагодарили 38 раз(а) в 26 сообщениях
Поинты: 170
Сообщение от ansol Посмотреть сообщение
MT4 build 765 (12 Dec 2014) при неверном счете выдает:
2015.05.26 11:42:33.090 AnSol-ZOG3 EURUSD,M5: initialization failed (32767)
2015.05.26 11:42:33.090 AnSol-ZOG3 EURUSD,M5: uninit reason 8
2015.05.26 11:42:35.079 Expert AnSol-ZOG3 EURUSD,M5: removed

И никто никуда не работает.
Все проверено, с какой целью спорите?
Может человеку просто в сове нужно защиту сделать, чтобы была привязка к определенному счету, который он сам пропишет в коде и уже скомпиллированный сов продаст с этой защитой. Я не с целью - просто пишу то, что проверено и сам использую.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.05.2015, 07:28   #3904 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от vladradon Посмотреть сообщение
Может человеку просто в сове нужно защиту сделать, чтобы была привязка к определенному счету, который он сам пропишет в коде и уже скомпиллированный сов продаст с этой защитой. Я не с целью - просто пишу то, что проверено и сам использую.
А мой кусок выше это и делает! Просто можно вынести Account во входные переменные, а можно(как и написано выше) в общие, после компиляции значения видно не будет, а эксперт вылетит со свистом, если номер счета не совпадет.
Я все понял, что чел хотел сделать и предложил самый простой работающий вариант.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
vladradon (26.05.2015)
Старый 26.05.2015, 09:15   #3905 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 105
Репутация: 38
vladradon
Сказал(а) спасибо: 23
Поблагодарили 38 раз(а) в 26 сообщениях
Поинты: 170
Сообщение от ansol Посмотреть сообщение
А мой кусок выше это и делает! Просто можно вынести Account во входные переменные, а можно(как и написано выше) в общие, после компиляции значения видно не будет, а эксперт вылетит со свистом, если номер счета не совпадет.
Я все понял, что чел хотел сделать и предложил самый простой работающий вариант.
Все правильно, но только этот кусок кода нужно правильно разместить, как описал выше.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.05.2015, 09:25   #3906 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от vladradon Посмотреть сообщение
Все правильно, но только этот кусок кода нужно правильно разместить, как описал выше.
Напоминает разговор с глухим - я же написал по-русски: это все прямо сию минут работает именно так, как написано выше с размещением в функции OnInit()
Какие проблемы-то?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (26.05.2015)
Старый 26.05.2015, 11:09   #3907 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 105
Репутация: 38
vladradon
Сказал(а) спасибо: 23
Поблагодарили 38 раз(а) в 26 сообщениях
Поинты: 170
Сообщение от ansol Посмотреть сообщение
Напоминает разговор с глухим - я же написал по-русски: это все прямо сию минут работает именно так, как написано выше с размещением в функции OnInit()
Какие проблемы-то?
Функция OnInit() не является даже изначально командной, т.е. она фиксирует общие параметры работы сова. Единственная команда, которая может запретить работу сова - ExpertRemove() в этой функции.

Последний раз редактировалось NSerega; 26.05.2015 в 14:24.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.05.2015, 11:35   #3908 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
_http://docs.mql4.com/ru/basis/function/events
если return(INIT_SUCCEEDED), то работа продолжится.
если return(INIT_FAILED), то нет.
Обработаете условиями и дадите нужную команду.
Чтоб не ругался компилятор делайте:
"int OnInit()" вместо "void OnInit()"
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.05.2015, 11:55   #3909 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от matro3 Посмотреть сообщение
_http://docs.mql4.com/ru/basis/function/events
если return(INIT_SUCCEEDED), то работа продолжится.
если return(INIT_FAILED), то нет.
Обработаете условиями и дадите нужную команду.
Чтоб не ругался компилятор делайте:
"int OnInit()" вместо "void OnInit()"
Ну, товарищ не панимаает!
Там еще куча кодов есть, по которым обламывается запуск сова, я выбрал
return(INIT_PARAMETERS_INCORRECT) - сов выкидывает, т.е. REMOVE делает.
И проверил, и выжимку из лога журнала экспертов привел - ну, не верит товарищ, шибка вумный, аднака
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (26.05.2015)
Старый 26.05.2015, 17:13   #3910 (permalink)
♔♕♖♗♘♙
 
Аватар для DomovenokBrest
 
Регистрация: 27.10.2012
Адрес: Белоруссия, Брест
Сообщений: 2,246
Репутация: 10272
DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest
Сказал(а) спасибо: 11,251
Поблагодарили 10,250 раз(а) в 2,364 сообщениях
Поинты: 586
Отправить сообщение для DomovenokBrest с помощью Skype™
Сообщение от Semenov Semen Посмотреть сообщение
Всем привет! Помогите пожалуйста привязать советник к счету. Читал на mql5 форуме что нужно писать int AccountNumber(); и еще что то после int start,а у меня только int OnInit .
Я использую следующий блок защиты. То что не нужно - за комментируй...

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

int start()
{
//| Функции защиты программы |
//+------------------------------------------------------------------+

//Блок "Защита паролем" Этот способ стар, как мир, и используется в большинстве видов лицензионного ПО.
//Вы поставляете пользователю свою программу вместе с паролем, без которого программа не будет работать.

if (password != "**********") //именно этот пароль должен ввести пользователь
{
Alert ("Wrong password!");
return (0);
}

//Блок "Ограничение сроком действия" Если Вы хотите дать пользователю программу для того, чтобы он её протестировал и решил для себя,
//хочет он её покупать или нет, Вы можете сделать так, чтобы Ваша программа перестала работать после определённой даты.

string expire_date = "2015.12.31"; //вшитая дата экспирации
datetime e_d = StrToTime(expire_date);

if (CurTime() >= e_d)
{
Alert ("The trial version has expired!");
return(0);
}


//Блок "Ограничение по номеру счета" Если Вы хотите дать пользователю программу для того, чтобы он её использовал только на
//определенном номере счета, , Вы можете сделать так, чтобы Ваша программа перестала работать на всех других счетах.
string Account = 453593; //Аккаунт номер
if(Account > 0 && Account != AccountNumber())
{
Alert ("AccountNumber - WRONG!");
return(0);
}
//============================================================================
[свернуть]

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
DomovenokBrest на форуме   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
Viko2000 (26.05.2015), vladradon (27.05.2015), поручик (30.05.2015)
Старый 26.05.2015, 18:42   #3911 (permalink)
Местный знаток
 
Аватар для vlad_123
 
Регистрация: 29.01.2013
Сообщений: 343
Репутация: 837
vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 -
Сказал(а) спасибо: 30
Поблагодарили 833 раз(а) в 333 сообщениях
Поинты: 402
Сообщение от vladradon Посмотреть сообщение
Функция OnInit() не является даже изначально командной, т.е. она фиксирует общие параметры работы сова. Единственная команда, которая может запретить работу сова - ExpertRemove() в этой функции.
Т.е. вас не смущает, что в документации написано _http://docs.mql4.com/ru/basis/function/events:
Цитата:
Если OnInit() имеет возвращаемое значение типа int, то ненулевой код возврата означает неудачную инициализацию и генерирует событие Deinit с кодом причины деинициализации REASON_INITFAILED

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мониторинг советников: http://www.myfxbook.com/members/vlad_123/

На заказ не программирую.

Последний раз редактировалось NSerega; 26.05.2015 в 23:36.
vlad_123 на форуме   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
eevviill (26.05.2015), Viko2000 (26.05.2015), vladradon (27.05.2015)
Старый 27.05.2015, 02:22   #3912 (permalink)
Активный участник
 
Аватар для vladradon
 
Регистрация: 12.02.2015
Сообщений: 105
Репутация: 38
vladradon
Сказал(а) спасибо: 23
Поблагодарили 38 раз(а) в 26 сообщениях
Поинты: 170
Сообщение от ansol Посмотреть сообщение
Ну, товарищ не панимаает!
Там еще куча кодов есть, по которым обламывается запуск сова, я выбрал
return(INIT_PARAMETERS_INCORRECT) - сов выкидывает, т.е. REMOVE делает.
И проверил, и выжимку из лога журнала экспертов привел - ну, не верит товарищ, шибка вумный, аднака
Спасибо за разъяснение - теперь буду знать.
Просто не всегда успеваю следить за объединением языков (4 и 5), а раньше на 4-ке такого не было вроде как...
Главное - мы предложили рабочие варианты, а какой использовать, уже сам прогер выберет.

Последний раз редактировалось vladradon; 27.05.2015 в 02:41.
vladradon на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (27.05.2015)
Старый 27.05.2015, 17:09   #3913 (permalink)
Прохожий
 
Аватар для Semenov Semen
 
Регистрация: 24.05.2015
Сообщений: 3
Репутация: 1
Semenov Semen
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Сообщение от ansol Посмотреть сообщение
Пишем
PHP код:
int Account=Номер_счета;
int OnInit() 
  { 
   if(
Account && Account != AccountNumber())  return(INIT_PARAMETERS_INCORRECT);

Какие еще ошибки, если это работает в сове прямо сию минуту?
Если номер заданного вами счета и счета, на котором запущен сов не совпадает, то инициализация завершится с ошибкой и торговать сов не будет.
Ошибки были при компиляции. Сейчас разобрался,всё работает. Спасибо!
Semenov Semen вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 30.05.2015, 10:15   #3914 (permalink)
Почётный гражданин
 
Аватар для Dobryj
 
Регистрация: 07.06.2012
Сообщений: 222
Репутация: 325
Dobryj Dobryj Dobryj Dobryj
Сказал(а) спасибо: 384
Поблагодарили 293 раз(а) в 127 сообщениях
Поинты: 100
ВСЕМ ПРИВЕТ !
ПОМОГИТЕ ПОЖАЛУЙСТА РАЗОБРАТЬСЯ

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




//+----------------------------------------------------------------------------+
//| Описание : Возвращает наименование торговой операции |
//| op - идентификатор торговой операции |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
switch (op) {
case OP_BUY : return("Buy");
case OP_SELL : return("Sell");
case OP_BUYLIMIT : return("BuyLimit");
case OP_SELLLIMIT: return("SellLimit");
case OP_BUYSTOP : return("BuyStop");
case OP_SELLSTOP : return("SellStop");
default : return("Unknown Operation");
}
}

//+----------------------------------------------------------------------------+
//| |
//| Описание : Возвращает одно из двух значений взависимости от условия. |
//+----------------------------------------------------------------------------+
color IIFc(bool condition, color ifTrue, color ifFalse) {
if (condition) return(ifTrue); else return(ifFalse);
}

//+----------------------------------------------------------------------------+
//| |
//| Описание : Модификация одного предварительно выбранного ордера. |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| pp - цена установки ордера |
//| sl - ценовой уровень стопа |
//| tp - ценовой уровень тейка |
//| ex - дата истечения |
//+----------------------------------------------------------------------------+
void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0) {
bool fm;
color cl=IIFc(OrderType()==OP_BUY
|| OrderType()==OP_BUYLIMIT
|| OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
double op, pa, pb, os, ot;
int dg=(int)MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;

if (pp<=0) pp=OrderOpenPrice();
if (sl<0 ) sl=OrderStopLoss();
if (tp<0 ) tp=OrderTakeProfit();

pp=NormalizeDouble(pp, dg);
sl=NormalizeDouble(sl, dg);
tp=NormalizeDouble(tp, dg);
op=NormalizeDouble(OrderOpenPrice() , dg);
os=NormalizeDouble(OrderStopLoss() , dg);
ot=NormalizeDouble(OrderTakeProfit(), dg);

if (pp!=op || sl!=os || tp!=ot) {
for (it=1; it<=NumberOfTry; it++) {
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
fm=OrderModify(OrderTicket(), pp, sl, tp, ex, cl);
if (fm) {
if (UseSound) PlaySound(SoundSuccess); break;
} else {
er=GetLastError();
if (UseSound) PlaySound(SoundError);
pa=MarketInfo(OrderSymbol(), MODE_ASK);
pb=MarketInfo(OrderSymbol(), MODE_BID);
Print("Error(",er,") modifying order: ",ErrorDescription(er),", try ",it);
Print("Ask=",pa," Bid=",pb," sy=",OrderSymbol(),
" op="+GetNameOP(OrderType())," pp=",pp," sl=",sl," tp=",tp);
Sleep(1000*10);
}
}
}
}

//+----------------------------------------------------------------------------+
//| |
//| Описание : Перенос уровня стопа в безубыток |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ( "" - любой символ, |
//| NULL - текущий символ) |
//| op - операция ( -1 - любая позиция) |
//| mn - MagicNumber ( -1 - любой магик) |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
double po, pp;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
po=MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {
if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*po) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
if (pp-OrderOpenPrice()>LevelProfit*po) {
ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1);
}
}
}
if (OrderType()==OP_SELL) {
if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*po) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderOpenPrice()-pp>LevelProfit*po) {
ModifyOrder(-1, OrderOpenPrice()-LevelWLoss*po, -1);
}
}
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Сопровождение позиции простым тралом |
//+------------------------------------------------------------------+
void TrailingPositions() {
double pBid, pAsk, pp;
int mw=Magic;
if (mw<0 || OrderMagicNumber()==mw)
{
pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY)
{
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp)
{
if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp)
{
ModifyStopLoss(pBid-TrailingStop*pp);
return;
}
}
}
if (OrderType()==OP_SELL)
{
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp)
{
if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0)
{
ModifyStopLoss(pAsk+TrailingStop*pp);
return;
}
}
}
}
}
//+------------------------------------------------------------------+
//| Перенос уровня StopLoss |
//| Параметры: |
//| ldStopLoss - уровень StopLoss |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
if (fm && UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+

//открытие позиции

if(t1==Time[0])
{
ObjectDelete("1");
if(Open[1]>Close[1]&&Volume[0]<3)
{
w=OrderSend(Symbol(),OP_BUY,lot,Ask,10,Ask-sl,Ask+tp,NULL,Magic,0,Green);
}
else if(Open[1]<Close[1]&&Volume[0]<3)
{
w=OrderSend(Symbol(),OP_SELL,lot,Bid,Slippage,Bid+sl,Bid-tp,NULL,Magic,0,Red);
}
}


//сопровождение позиции
bool B_k = True; // Безубыток
bool TralingStopp = True; //TralingStop

if(B_k==TRUE && TralingStopp == true && OrdersTotal()>0) { MovingInWL("0",-1,Magic);TrailingPositions(); }
if(B_k==TRUE && TralingStopp == False && OrdersTotal()>0) { MovingInWL("0",-1,Magic); }
if(B_k==FALSE && TralingStopp == TRUE && OrdersTotal()>0) { TrailingPositions(); } // при данном условии трал не работает , ошибка неверный тикет


[свернуть]

НЕ РАБОТАЕТ ТРАЛ КОГДА ОТКЛЮЧЕН БЕЗУБЫТОК И ВКЛЮЧЕН ТРАЛ,НО РАБОТАТ КОГДА ДВА УСЛОВИЯ ТРУЕ , МОЖЕТ КТО ДАСТ КУСОК КОДА ПО ТРАЛУ ПОПРОЩЕ

Последний раз редактировалось Dobryj; 30.05.2015 в 10:22.
Dobryj вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 31.05.2015, 20:26   #3915 (permalink)
Новичок форума
 
Аватар для Mirosha
 
Регистрация: 25.02.2010
Сообщений: 17
Репутация: 5
Mirosha
Сказал(а) спасибо: 21
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 2
Подскажите пожалуйста через какую функцию можно написать советник по стандартному индикатору Volumes , но только не через буфер обмена индикатора.
Mirosha вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 31.05.2015, 21:13   #3916 (permalink)
Новичок форума
 
Аватар для Евгений Симашов
 
Регистрация: 24.05.2015
Адрес: Орловская обл.
Сообщений: 71
Репутация: 17
Евгений Симашов
Сказал(а) спасибо: 19
Поблагодарили 17 раз(а) в 13 сообщениях
Поинты: 68
Господа программисты, а есть ли способ, чтоб любая сова начинала торговать только если разрешит уровень CCI?? как это сделать если можно самым простым способом?
------
Мне тут посоветовали примерно так:
if (cci > 100 || cci < -100)
return;
но куда это вставлять после слова START INI или еще куда? и то ли это что надо?..
Евгений Симашов вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 31.05.2015, 21:16   #3917 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Сообщение от Mirosha Посмотреть сообщение
Подскажите пожалуйста через какую функцию можно написать советник по стандартному индикатору Volumes , но только не через буфер обмена индикатора.
Если индикатор рисует какие-то графические объекты, то можно их находить и смотреть свойства. Но это, наверняка, не ваш случай. Поэтому ответ - никак.
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 31.05.2015, 21:20   #3918 (permalink)
Элитный участник
 
Аватар для Gnn-life
 
Регистрация: 09.04.2012
Адрес: Питер
Сообщений: 485
Репутация: 1003
Gnn-life Gnn-life Gnn-life Gnn-life Gnn-life Gnn-life Gnn-life Gnn-life
Сказал(а) спасибо: 554
Поблагодарили 1,003 раз(а) в 299 сообщениях
Поинты: 102
Сообщение от matro3 Посмотреть сообщение
Если индикатор рисует какие-то графические объекты, то можно их находить и смотреть свойства. Но это, наверняка, не ваш случай. Поэтому ответ - никак.
а я бы так однозначно не ответила.....в программе мкл очень много возможностей

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Gnn-life на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 31.05.2015, 21:23   #3919 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Сообщение от Gnn-life Посмотреть сообщение
а я бы так однозначно не ответила.....в программе мкл очень много возможностей
Тогда и я хотел бы знать как это сделать...
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 31.05.2015, 21:51   #3920 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,655
Репутация: 8585
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 634
Поблагодарили 8,580 раз(а) в 1,569 сообщениях
Поинты: 804
Сообщение от Mirosha Посмотреть сообщение
Подскажите пожалуйста через какую функцию можно написать советник по стандартному индикатору Volumes , но только не через буфер обмена индикатора.
В данном случае сам индикатор не нужен, воспользуйтесь ф-цией iVolume
PHP код:
long  iVolume(
   
string           symbol,          // символ
   
int              timeframe,       // период
   
int              shift            // сдвиг
   
); 
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
DomovenokBrest (06.06.2015), Mirosha (31.05.2015)
Ответ

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


Опции темы

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

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



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


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