[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 360
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем добрый вечер!
Мне нужно закодировать следующий алгоритм.
Поставить отложенный ордер SELLSTOP в момент открытия нулевой свечи
ТОЛЬКО ЕСЛИ на данной свече SELLSTOP уже не выставлен.
Т.е. на одной нулевой свече поставить один SELLSTOP... и не более.
Данную идею применительно к рыночному ордеру SELL я успешно реализую в этом коде
===========================================================
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке (и рыночные и ОТЛОЖЕННЫЕ)
if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордер
if ( OrderType ()==OP_SELL) //если это открытый рыночный ордер SELL
last_order_bar = iBarShift (Symbol (),0,OrderOpenTime ())//запоминаем порядковый N свечи на котором открылся данный рыночный ордер SELL
(ot==0 || last_order_bar>0) //если ордеров нет либо последний ордер открыт не на текущем баре
if( Bid ==iOpen (Symbol (),0,0))//если цена =цене открытия бара
// открыть ордер
Не могу применить данный алгоритм к отложенным ордерам поскольку OrderOpenTime () в качестве параметра iBarShift ( ),если я не ошибаюсь, возвращает время открытия только рыночного ордера,
а не выставления отложенного.
Подскажите пожалуйста каким образом в качестве параметра в iBarShift ( ) передать время выставления отложенного ордера?
Или как еще можно реализовать нужный мне замысел?
Спасибо.
Подскажите пожалуйста каким образом в качестве параметра в iBarShift ( ) передать время выставления отложенного ордера?
после открытия отложки сохранить время его открытия в глобальную переменную,
в имя переменной внести тикет, для отличия одной переменной от отложки от другой
+ контролировать закрытые/удаленные отложки, чтоб чистить переменные из памяти.после открытия отложки сохранить время его открытия в глобальную переменную,
в имя переменной внести тикет, для отличия одной переменной от отложки от другой
+ контролировать закрытые/удаленные отложки, чтоб чистить переменные из памяти.А какая функция возвращает время открытия последнего отложенного ордера?
Например применительно к рыночному ордеру понятно OrderOpenTime () возвращает время открытия последнего рыночного ордера?
Или сохранить время открытия отложки можно не прибегая к функции?
Если это так - буду Вам оооочень признателен если покажете в коде как это делается?
Спасибо большое за оперативный ответ.
А какая функция возвращает время открытия последнего отложенного ордера?
в вашем случае - вам нужно сохранять Time[0]
Всем привет!
пишу некое подобие индюка который бы использовал сигналы от RSIOMA и ни как не могу получить нужные мне значения буферов marsiomaXupSig и marsiomaXdnSig. В коде RSIOMA есть следующие строки SetIndexBuffer(6,marsiomaXupSig); SetIndexBuffer(7,marsiomaXdnSig);"...." if(RSIBuffer[i+1]<=marsioma[i+1]&&RSIBuffer[i]>marsioma[i]) marsiomaXupSig[i] = -11; if(RSIBuffer[i+1]>=marsioma[i+1]&&RSIBuffer[i]<marsioma[i]) marsiomaXdnSig[i] = 11; в своем индюке я пытаюсь получить данные следующим образом
double marsiomaXupSig = iCustom(NULL, Period(), "RSIOMA_v3",RSIOMA,RSIOMA_MODE,RSIOMA_PRICE,Ma_RSIOMA,Ma_RSIOMA_MODE,BuyTrigger,SellTrigger,BuyTriggerColor,SellTriggerColor,MainTrendLong,MainTrendShort,MainTrendLongColor,MainTrendShortColor,MajorTrend,marsiomaXupSigColor,marsiomaXdnSigColor,BarsToCount,6,0);
double marsiomaXdnSig = iCustom(NULL, Period(), "RSIOMA_v3",RSIOMA,RSIOMA_MODE,RSIOMA_PRICE,Ma_RSIOMA,Ma_RSIOMA_MODE,BuyTrigger,SellTrigger,BuyTriggerColor,SellTriggerColor,MainTrendLong,MainTrendShort,MainTrendLongColor,MainTrendShortColor,MajorTrend,marsiomaXupSigColor,marsiomaXdnSigColor,BarsToCount,7,0);
по логике я должен был получить значения 11 и -11 , но при выводе значений в журнал я получаю только 2013.05.28 09:05:52 2013.01.04 11:29 my EA XAUUSD,H1: marsiomaXdnSig - 2147483647 2013.05.28 09:05:52 2013.01.04 11:29 my EA XAUUSD,H1: marsiomaXupSig - 2147483647 Что я делаю не так ?
Доброго дня! Я чего-то принялся составлять функцию,и вот, куча ошибок... Вроде же все верно, уж минут 15-20 на ние смотрю.
RasstawimOrdera(int Raz,double Dist_pervaya,double Dist_dalshaya,double TP, double SL,double Lot) ................
'RasstawimOrdera' - expression on global scope not allowed C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Скобка.mq4 (73, 1)
'Raz' - variable already defined C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Скобка.mq4 (73, 21)
'double' - variable expected C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Скобка.mq4 (73, 25)
'Dist_pervaya' - expression on global scope not allowed C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Скобка.mq4 (73, 32)
'Dist_pervaya' - variable not defined C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Скобка.mq4 (73, 32)
И так далее,
Глючит порядком. Форум. При ответе жму пробел-курсор дрожит и бегает на один шаг вперед-назад, самороизвольно прыгает в начало,в верхний левый угол. Жму левым тачпадом на то место, где хочу продолжить писать- нет, курсор так и мигает вначале текста, и красит его синим и назад. Еще минут 10 ругался.
Написал в блокноте и скопировал.
Так вот, я понимаю, что там может точки где не хватает, я к примеру, или какой ерунды, но я не сображу. Подскажите!
Нет... Конечно, я типерь обьявил функцию, что она инт... Но теперь
'errorcomment' - expression on global scope not allowed C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Конструктор.mq4 (80, 11)
Что это, куда смотреть?