Interception Вам поможет.
Спасиба но ответ для себя я ненашол....возможно Вы непоняли вопрос.
Мне нужно чтоб Q нажимал эксперт
Действительно, наверно не так понял. Просто хотел показать, что
есть способы программной эмуляции нажатия клавиатуры через
импорт функций из стандартных библиотек. По-моему, в теме про визуализацию
тестирования это проходило.
в таком виде код не читабельный, если хотите что-бы вам помогли вставте код через кнопку "MQL"
G1youK:
Прошу прощение за мою неопытность но мне непонятно...как вставить
через "MQL"
Если кому несложно обьясните?
Если кому несложно обьясните?
'Как вставлять код MQL-4 в пост'
2 solandr спасибо.
Вобщем я нашол вот этот индикатор:
Прошу всех кто откликнется необсуждать советника т.к это мне нужно для примера и личного понимания.
Зарание примного благодарен.
Вобщем я нашол вот этот индикатор:
#property copyright "Copyright © 2007, lukas1" #property link "http://www.alpari-idc.ru/" //---- #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 Green #property indicator_color4 Green //---- input parameters extern int SSP = 6; //период линейного разворота индикатора extern int CountBars = 2250; //расчетный период extern int SkyCh = 13; //чувствительность к пробою канала //Должна быть в диапазоне 0-50. 0 - нет стрелок. Больше 50 - перерегулирование int i; double high, low, smin, smax; double val1[]; // буфер для бай double val2[]; // буфер для селл double Sky_BufferH[]; double Sky_BufferL[]; bool uptrend, old; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 233); // стрелка для бай SetIndexBuffer(0, val1); // индекс буфера для бай SetIndexDrawBegin(0, 2*SSP); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 234); // стрелка для селл SetIndexBuffer(1, val2); // индекс буфера для селл SetIndexDrawBegin(1, 2*SSP); SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(2, Sky_BufferH); SetIndexLabel(2, "High"); SetIndexDrawBegin(2, 2*SSP); SetIndexStyle(3, DRAW_LINE); SetIndexBuffer(3, Sky_BufferL); SetIndexLabel(3, "Low"); SetIndexDrawBegin(3, 2*SSP); //---- return(0); } //+------------------------------------------------------------------+ //| Calculation of SilverTrend lines //+------------------------------------------------------------------+ int start() { int counted_bars = IndicatorCounted(); //---- последний посчитанный бар будет пересчитан if(counted_bars > 0) counted_bars--; //---- if(Bars <= SSP + 1) return(0); //---- initial zero uptrend =false; old =false; GlobalVariableSet("goSELL", 0); // задали существование и обнулили goSELL=0 GlobalVariableSet("goBUY", 0); // задали существование и обнулили goBUY =0 //---- for(i = CountBars - SSP; i >= 0; i--) // уменьш значение shift на 1 за проход; { high = High[iHighest(Symbol(),0,MODE_HIGH,SSP,i)]; low = Low[iLowest(Symbol(),0,MODE_LOW,SSP,i)]; smax = high - (high - low)*SkyCh / 100; // smax ниже high с учетом коэфф.SkyCh smin = low + (high - low)*SkyCh / 100; // smin выше low с учетом коэфф.SkyCh val1[i] = 0; val2[i] = 0; if(Close[i] < smin && i!=0 ) // выключено мерцание стрелок (i!=0) { uptrend = false; } if(Close[i] > smax && i!=0 ) // выключено мерцание стрелок (i!=0) { uptrend = true; } if(uptrend != old && uptrend == false) { val2[i] = high; // если условия выполнены то рисуем val1 if(i == 0) GlobalVariableSet("goBUY",1); } if(uptrend != old && uptrend == true ) { val1[i] = low; // если условия выполнены то рисуем val2 if(i == 0) GlobalVariableSet("goSELL",1); } old=uptrend; Sky_BufferH[i]=high - (high - low)*SkyCh / 100; Sky_BufferL[i]=low + (high - low)*SkyCh / 100; } return(0); } //+------------------------------------------------------------------+Я хотел бы чтоб при срабатывании индикатора (стрелочка вверх или вниз) включался вот это скрипт:
#property copyright "Ким Игорь В. aka KimIV" #property link "http://www.kimiv.ru" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ void start() { double Lots; int op; for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { op=OrderType(); if (op==OP_BUY) { Lots=OrderLots(); OrderClose(OrderTicket(),OrderLots(),Bid,7,CLR_NONE); OrderSend(Symbol(),OP_SELL,Lots,Bid,7,0,0,"Reverse",0,0,CLR_NONE); } if (op==OP_SELL) { Lots=OrderLots(); OrderClose(OrderTicket(),OrderLots(),Ask,7,CLR_NONE); OrderSend(Symbol(),OP_BUY,Lots,Ask,7,0,0,"Reverse",0,0,CLR_NONE); } } } } } //+------------------------------------------------------------------+
Прошу всех кто откликнется необсуждать советника т.к это мне нужно для примера и личного понимания.
Зарание примного благодарен.
предлагаю устроить чемпионат советников по Quake.
BabyBear:
простите?
предлагаю устроить чемпионат советников по Quake.
Тут пример как нажимать кнопки
http://www.metatrader4.com/ru/forum/7556/
http://www.metatrader4.com/ru/forum/7556/
G1youK писал (а):
Я хотел бы чтоб при срабатывании индикатора (стрелочка вверх или вниз) включался вот это скрипт:
Этот скрипт элементарно превращается в функцию или процедуру
MQL4 и вставляется в нужном месте эксперта после проверки выполнения
необходимого условия срабатывания.Я хотел бы чтоб при срабатывании индикатора (стрелочка вверх или вниз) включался вот это скрипт:
Если Вам нужно, чтобы эксперт нажимал кнопки для запуска скрипта, то это сложный обходной путь. Лучше и проще сделать так, как написано выше.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос: можно ли заставить эксперта нажимать определенную кнопку в определенный момент?
например - при срабатывании сигнала нажимаем кнопку "Q"
Немогу отыскать самостоятельно ответ на этот вопрос, помомогите кто знает...заранее благодарен.