А я вот как сделал:
Написал два скрипта "SetOrder_Sell" и "SetOrder_Buy", которые находят последний фрактал вниз (для SetOrder_Buy), и в OrderSend() подставляют это значение минус три пипса для StopLoss.
Теперь, запустив этот скрипт, получаю сразу ордер с нужными мне уровнями.
Одно плохо - нельзя запускать скрипты горячими клавишами и нет окон диалога для ввода каких-то моих параметров.
Вот отсюда и два вопроса к разработчикам:
1. Можно ли назначить горячие клавиши для скриптов?
2. Нельзя ли ввести диалоги с разными там кнопочками и полями для ввода?
Это не требование и даже не пожелание, просто вопрос :)
С уважением и т.д.
Написал два скрипта "SetOrder_Sell" и "SetOrder_Buy", которые находят последний фрактал вниз (для SetOrder_Buy), и в OrderSend() подставляют это значение минус три пипса для StopLoss.
Теперь, запустив этот скрипт, получаю сразу ордер с нужными мне уровнями.
Одно плохо - нельзя запускать скрипты горячими клавишами и нет окон диалога для ввода каких-то моих параметров.
Вот отсюда и два вопроса к разработчикам:
1. Можно ли назначить горячие клавиши для скриптов?
2. Нельзя ли ввести диалоги с разными там кнопочками и полями для ввода?
Это не требование и даже не пожелание, просто вопрос :)
С уважением и т.д.
prodox , подобное предлагал, поэтому полностью поддерживаю.
1. мы думаем, как сделать назаначение горячих клавиш для скриптов
2. если Вы напишете соответсвующую по составу dll, то нет проблем. вот пример вызова стандартного виндосовского месседж бокса
2. если Вы напишете соответсвующую по составу dll, то нет проблем. вот пример вызова стандартного виндосовского месседж бокса
#import "user32.dll" int MessageBoxA(int,string,string,int); #import #define MB_OK 0x00000000 #define MB_OKCANCEL 0x00000001 #define MB_ABORTRETRYIGNORE 0x00000002 #define MB_YESNOCANCEL 0x00000003 #define MB_YESNO 0x00000004 #define MB_RETRYCANCEL 0x00000005 #define MB_ICONHAND 0x00000010 #define MB_ICONQUESTION 0x00000020 #define MB_ICONEXCLAMATION 0x00000030 #define MB_ICONASTERISK 0x00000040 // Dialog Box Command IDs #define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE 5 #define IDYES 6 #define IDNO 7 #define IDCLOSE 8 #define IDHELP 9 int some_func() { string sret; int retinit = MessageBoxA(0,"Return value from this MessageBox\nwill be analyzed", "from some_func", MB_ABORTRETRYIGNORE | MB_ICONASTERISK); switch(retinit) { case IDOK : sret="IDOK"; break; case IDCANCEL : sret="IDCANCEL"; break; case IDABORT : sret="IDABORT"; break; case IDRETRY : sret="IDRETRY"; break; case IDIGNORE : sret="IDIGNORE"; break; case IDYES : sret="IDYES"; break; case IDNO : sret="IDNO"; break; case IDCLOSE : sret="IDCLOSE"; break; case IDHELP : sret="IDHELP"; break; default : sret=retinit; } Print(sret); }
круто конечно, но разработчика легче сделать щелчок для подстановки в поле
прочитал этот текст. скопировал в скрипт. поэксперементировал.
ни-че-го не получилось. даже откомпилировать не смог. пробовал создавать "user32.dll" и как-то их связать, но, опять же ничего...
Slawa, не могли бы вы дать пояснения к коду? Предвижу ответ: "изучайте С++", и не обижусь, если так и будет. Но, если, можно, помогите разобраться.
буду рад любому участию
ни-че-го не получилось. даже откомпилировать не смог. пробовал создавать "user32.dll" и как-то их связать, но, опять же ничего...
Slawa, не могли бы вы дать пояснения к коду? Предвижу ответ: "изучайте С++", и не обижусь, если так и будет. Но, если, можно, помогите разобраться.
буду рад любому участию
Уважаемый компостер!
Вы, если уж ступили на тропу программирования, старайтесь мыслить системно :)
А то Ваш пост напоминает мне небезызвестное письмо в газету: "Уважаемые ученые! У нас в подвале что-то стучит. Не могли бы вы рассказать нам, что это такое" :)
Вы, когда задаете Ваши вопросы, пробуйте мысленно представить себя на месте спрашиваемого. Ну, как минимум, скажите хоть, что компилятор-то Вам говорит :)))
Библиотеку "user32.dll" не надо создавать! Это системная библиотека и она уже давно создана програмерами из Microsoft. Она лежит в папке "C:\WINDOWS\system32" и пусть себе там и лежит.
Попробуйте еще раз. Создайте новый скрипт, удалите полностью весь код, подставляемый по умолчанию и вставьте этот код:
Вы, если уж ступили на тропу программирования, старайтесь мыслить системно :)
А то Ваш пост напоминает мне небезызвестное письмо в газету: "Уважаемые ученые! У нас в подвале что-то стучит. Не могли бы вы рассказать нам, что это такое" :)
Вы, когда задаете Ваши вопросы, пробуйте мысленно представить себя на месте спрашиваемого. Ну, как минимум, скажите хоть, что компилятор-то Вам говорит :)))
Библиотеку "user32.dll" не надо создавать! Это системная библиотека и она уже давно создана програмерами из Microsoft. Она лежит в папке "C:\WINDOWS\system32" и пусть себе там и лежит.
Попробуйте еще раз. Создайте новый скрипт, удалите полностью весь код, подставляемый по умолчанию и вставьте этот код:
#import "user32.dll" int MessageBoxA(int,string,string,int); #import #define MB_OK 0x00000000 #define MB_OKCANCEL 0x00000001 #define MB_ABORTRETRYIGNORE 0x00000002 #define MB_YESNOCANCEL 0x00000003 #define MB_YESNO 0x00000004 #define MB_RETRYCANCEL 0x00000005 #define MB_ICONHAND 0x00000010 #define MB_ICONQUESTION 0x00000020 #define MB_ICONEXCLAMATION 0x00000030 #define MB_ICONASTERISK 0x00000040 #define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE 5 #define IDYES 6 #define IDNO 7 #define IDCLOSE 8 #define IDHELP 9 int start() { string sret; int retinit; retinit=MessageBoxA(0,"this is s message","this is a caption",MB_ABORTRETRYIGNORE | MB_ICONASTERISK); switch(retinit) { case IDOK: sret="IDOK"; break; case IDCANCEL: sret="IDCANCEL"; break; case IDABORT: sret="IDABORT"; break; case IDRETRY: sret="IDRETRY"; break; case IDIGNORE: sret="IDIGNORE"; break; case IDYES: sret="IDYES"; break; case IDNO: sret="IDNO"; break; case IDCLOSE: sret="IDCLOSE"; break; case IDHELP: sret="IDHELP"; break; default: sret="not case!!!"; } Alert("sret= "+sret); return(0); }
компильните. Если не компилится, напишите, что компилятор говорит.
С уважением и т.д.
<img>C:\1.jpg</img>
не могу картинку вставить :(((
понятно. надо сначала картинку закинуть на какой либо сервер. а уже потом дать ссылку на нее.
Для особо сообразительных написано же
:) :) :)
Для особо сообразительных написано же
Картинки вставляются через
:) :) :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в обоих случаях очень удобно наличие кнопочек которая или подставляет значение ближайший или установленный юзером в настройках - мой тейкпрофит - мой стоплосс
Например обе надписи рядом с окошком показывают:
Ближайший: (15 пунктов) 1.2345
Мой стандартный: (20 пунктов) 1.2355 - это значение можно сохранять также в профайле
при щелчке на надписи цифра переносится в поле ввода
и одна доп. кнопка между ними - подставить мои стандартные стопы
эту функцию лучше сделать и в установке ордера и в редактировании
Каждый ведь сталкивался - пока наберешь 4 числа вычисляя уровень стопов рынок уже ушел
Приходится сначала устанавливать ордер, а потом редактироать стоплоссы.
Отключение кнопки если уровень не тот и кнопочки инкремента это рулез, спасибо