Ваши вопросы по языку MQL4

eevviill

Заблокирован
!

Очень нужна помощь.
Проблема такая
PHP:
string new_par1=ind1_parametr1; 
if(!string_(ind1_parametr1)) double new_par1=double(ind1_parametr1);

Надо при одном условии чтобы переменная была string, в другом double.
Перелопатил очень много, единственное кто то говорил что через класы можно так, но с ними знаком поверхносно.
 

matro3

Почетный гражданин
Никак. Переопределить тип переменной нельзя.
 

Yura Vakulenko

Активный участник
Юрий не хочу вас ничем обидеть, просто запаситесь терпением на месяц , а лучше на полгодика-год, а вы хотели наскоком за 2 дня освоить язык MQL4, и уже писать граальные совы?:facepalm:
я помню как сидел сутками над справкой по языку и кодом самого простого советника, не желая чтобы он приносил профит, а хотя бы открывал ордера, и никаких индикаторов внешних не брал, все проще и сложнее одновременно, в языке уже прописаны десятки индикаторов, внешние индюки вапще можно не использовать... удачи вам и терпения!
если бы те внутренние индикаторы были настолько хороши.. то надобности во внешних не было бы. и вам удачи!)
 

Ugar

Гуру форума
Кто запускал программы, подскажите как. Нужно запустить командную строку, в ней exe файл с кучей параметров.
Для пробы написал скрипт
Код:
#import "kernel32.dll"
int      WinExec(string NameEx, int dwFlags);
#import
#property script_show_inputs
void OnStart()
  {
//---
   WinExec("c:\\Windows\\notepad.exe", 1); 
  }
По идее скрипт должен запустить блокнот, но не запускает. Что не так?
 

ansol

Местный знаток
Кто запускал программы, подскажите как. Нужно запустить командную строку, в ней exe файл с кучей параметров.

По идее скрипт должен запустить блокнот, но не запускает. Что не так?

Поиск говорит, что надо использовать ShellExecuteW, а WinExec не должен работать.
 

AlexeyVik

Программист mql4 mql5
Кто запускал программы, подскажите как. Нужно запустить командную строку, в ней exe файл с кучей параметров.
Для пробы написал скрипт
Код:
#import "kernel32.dll"
int      WinExec(string NameEx, int dwFlags);
#import
#property script_show_inputs
void OnStart()
  {
//---
   WinExec("c:\\Windows\\notepad.exe", 1); 
  }
По идее скрипт должен запустить блокнот, но не запускает. Что не так?
А что на форуме mql не спросишь?
ps. не сразу увидел что тебе уже ответили. Может получится.
 
  • Like
Реакции: Ugar

Andy200577

Новичок форума
Всем привет!
Хотелось бы узнать следующий момент, если кто знает.
Существует такой советник для быстрого открывания отложенных ордеров - Утилита для торговли в один клик с отложенными ордерами в MT4 , код советника закрыт. Мне понадобилось сделать такие же кнопки Buy и Sell на графике, но только при клике на них, уже будут другие действия происходить. Может кто знает, каким образом эти кнопки делаются на MQL ?
Заранее спасибо!
 

eevviill

Заблокирован
Всем привет!
Хотелось бы узнать следующий момент, если кто знает.
Существует такой советник для быстрого открывания отложенных ордеров - Утилита для торговли в один клик с отложенными ордерами в MT4 , код советника закрыт. Мне понадобилось сделать такие же кнопки Buy и Sell на графике, но только при клике на них, уже будут другие действия происходить. Может кто знает, каким образом эти кнопки делаются на MQL ?
Заранее спасибо!
PHP:
OnChartEvent
+
PHP:
if(ObjectGetInteger(0,"BUY_button",OBJPROP_STATE))
{
ObjectSetInteger(0,"BUY_button",OBJPROP_STATE,false);
...
 

Ugar

Гуру форума
А можешь кинуть скрипт сюда. Мож понадобиться и буду иметь как пример.
Вот скрипт который я писал для проверки запуска программ. Для примера пойдёт. Посмотреть вложение 111.mq4
А вообще я добавил запуск программы в индикатор для отправки email, отправка через терминал, в этом случае, не подходит.
 

Ugar

Гуру форума
Всем привет!
Хотелось бы узнать следующий момент, если кто знает.
Существует такой советник для быстрого открывания отложенных ордеров - Утилита для торговли в один клик с отложенными ордерами в MT4 , код советника закрыт. Мне понадобилось сделать такие же кнопки Buy и Sell на графике, но только при клике на них, уже будут другие действия происходить. Может кто знает, каким образом эти кнопки делаются на MQL ?
Заранее спасибо!
В справочнике есть примеры.

OnInit()
1. Создать объект кнопка.
2. Задать параметры кнопки.

OnChartEvent(...)
Фиксировать смену состояния кнопки.
 

gold_traid

Новичок форума
Всем доброго времени суток!У меня советник открывает ордер на каждом баре как это поправить?
 

_SERG_

Активный участник
Всем доброго времени суток!У меня советник открывает ордер на каждом баре как это поправить?

А как, по стратегии, должен открывать?
Просто, есть стратегии, где ордера отрываются на каждом новом баре.
 

gold_traid

Новичок форума
А как, по стратегии, должен открывать?
Просто, есть стратегии, где ордера отрываются на каждом новом баре.
стратегия скальпинговая по м5 и получается что каждые 5 минут открывается ордер ордер тотал проверял
 

_SERG_

Активный участник
стратегия скальпинговая по м5 и получается что каждые 5 минут открывается ордер ордер тотал проверял
Как на счёт того, чтобы словами описать условие. (Скальпинг, скальпингом, а условие условием.)
Или сова чужая и владелец не в курсе?
(Можно фрагменты кода.)
 

gold_traid

Новичок форума
Как на счёт того, чтобы словами описать условие. (Скальпинг, скальпингом, а условие условием.)
Или сова чужая и владелец не в курсе?
(Можно фрагменты кода.)

PriceHigh = iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 0 , 0);
PriceLow = iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 2 , 1);
if (OrdersTotal()==0 && PriceHigh>PriceLow && CountBuy()==0 && CountSell() ==0);
{
SL = NormalizeDouble(PriceHigh- aStop_Loss * Point, Digits);
TP = NormalizeDouble(PriceHigh + aTake_Profit *Point,Digits);
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0,coment,Magic,0,Red);
 

gold_traid

Новичок форума
Как на счёт того, чтобы словами описать условие. (Скальпинг, скальпингом, а условие условием.)
Или сова чужая и владелец не в курсе?
(Можно фрагменты кода.)
поправленный код
{
total=OrdersTotal();
if(total<1);
m0=iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 0 , 0);
m1=iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 2 , 1);
if(m0>m1)
{

ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,Magic,0,Red);

if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ",OrderOpenPrice());
}
else Print("Error opening Sell order : ",GetLastError());
return;
}
 
Верх