TarasBY: Для начала определитесь с терминологией - "лимитник который сработает ровно в определённой время" - что означает "лимитник сработает"??? И чем подробнее расскажете про этот волшебный процесс - тем легче будет его осуществить в реальной жизни.
Да, не верно я выразился. В общем-то. Если тут понятно, отложенник только по цене ставиться.
Вот код:
//+------------------------------------------------------------------+//| 2 Days.mq4 |//| hoz |//| |//+------------------------------------------------------------------+#property copyright "hoz"#property link ""externstring A1 = "Объем сделки. Если i_lots = 0, то считается в процентах";
externdouble i_lots = 0.1;
externstring A2 = "Управление рисками";
externdouble i_sl = 15,
i_tp = 10;
externint slippage,
price_b,
price_a;
externstring Z1 = "=== Прочие настройки ===";
externstring i_openOrderSound = "ok.wav";
externint i_magicNumber = 400021;
double firstBarClosed,
secondBarClosed;
// Идентификаторы типов сигналов#define SIGNAL_BUY 1// Сигнал на покупку#define SIGNAL_SELL -1// Сигнал на продажу#define SIGNAL_NO 0// Нет сигнала#include <stderror.mqh>int init()
{
return(0);
}
//+------------------------------------------------------------------+int deinit()
{
return(0);
}
//+------------------------------------------------------------------+//+-------------------------------------------------------------------------------------+//| Получение рыночных данных |//+-------------------------------------------------------------------------------------+//FindOrders()//+-------------------------------------------------------------------------------------+//| Получение рыночных данных |//+-------------------------------------------------------------------------------------+void GetMarketInfo()
{
price_b = MarketInfo(Symbol(),MODE_BID);
price_a = MarketInfo(Symbol(),MODE_ASK);
}
//+-------------------------------------------------------------------------------------+//| Открытие позиций |//+-------------------------------------------------------------------------------------+bool Trade(int signal, double& priceForBuy, double& priceForSell)
{
// FindOrders();
priceForBuy = NormalizeDouble(priceForBuy,Digits);
priceForSell = NormalizeDouble(priceForSell,Digits);
if(!IsTesting())
GetMarketInfo();
if (signal == SIGNAL_BUY)
if (!OrderSend(Symbol(),OP_BUYLIMIT, i_lots,priceForBuy,slippage,i_sl,i_tp,"",i_magicNumber,3))
return(false);
if (signal == SIGNAL_SELL)
if (!OrderSend(Symbol(),OP_SELLLIMIT,i_lots,priceForSell,slippage,i_sl,i_tp,"",i_magicNumber,3))
return(false);
return(true);
}
//+-------------------------------------------------------------------------------------+//| Получение цены входа в покупку или в продажу |//+-------------------------------------------------------------------------------------+double GetPriceToInput()
{
firstBarClosed = iClose(Symbol(),1440,2);
secondBarClosed = iClose(Symbol(),1440,1);
{
double deltaForSell = (firstBarClosed - secondBarClosed)/2;
double priceForSell = secondBarClosed - deltaForSell;
return(priceForSell);
}
{
double deltaForBuy = (secondBarClosed - firstBarClosed)/2;
double priceForBuy = secondBarClosed + deltaForBuy;
return(priceForBuy);
}
}
//+-------------------------------------------------------------------------------------+//| Генерация сигнала закрытия, покупки или продажи |//+-------------------------------------------------------------------------------------+int GetSignal()
{
if(firstBarClosed > secondBarClosed)
return(SIGNAL_BUY);
if(firstBarClosed < secondBarClosed)
return(SIGNAL_NO);
}
//+-------------------------------------------------------------------------------------+//| Функция Start |//+-------------------------------------------------------------------------------------+int start()
{
int signal = GetSignal();
if (signal != SIGNAL_NO)
if(!Trade(signal, priceForBuy, priceForSell))
return(0);
return(0);
}
Вопрос по сути не сложный. Я передал в функцию Trade(int signal, double& priceForBuy, double& priceForSell)формальные параметрыpriceForBuy и priceForSell. Параметры передал по ссылкам. Ведь так это делается? Ведь функции то не глобальные, а локальные.
Пр компиляции возникла ошибка:
'priceForBuy' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 25)
'priceForSell' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 38)
Откуда ошибка? Ведь данные параметры я уже определил в функции GetPriceToInput()
Да, не верно я выразился. В общем-то. Если тут понятно, отложенник только по цене ставиться.
Вот код:
Вопрос по сути не сложный. Я передал в функцию Trade(int signal, double& priceForBuy, double& priceForSell) формальные параметры priceForBuy и priceForSell. Параметры передал по ссылкам. Ведь так это делается? Ведь функции то не глобальные, а локальные.
Пр компиляции возникла ошибка:
Откуда ошибка? Ведь данные параметры я уже определил в функции GetPriceToInput()
Перменные priceForBuy и priceForSell не найдены - говорит компилятор. Вам нужно разобраться с передачей значений переменных по ссылкам.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Это стратегия такая. Я щас может заскриню ее. Ох, брат старший пришол, не успеть могу. А ситуация таки странная.
Когда уже Диман, ты осилишь ЛИЧНЫЙ камп? :-)
Неужели за год на реале ещё бабла не нарубил? Там же вроде и СТАРТОВЫЕ суммы тебе не хилые выделены? :-)
Для начала определитесь с терминологией - "лимитник который сработает ровно в определённой время" - что означает "лимитник сработает"??? И чем подробнее расскажете про этот волшебный процесс - тем легче будет его осуществить в реальной жизни.
Да, не верно я выразился. В общем-то. Если тут понятно, отложенник только по цене ставиться.
Вот код:
Вопрос по сути не сложный. Я передал в функцию Trade(int signal, double& priceForBuy, double& priceForSell) формальные параметры priceForBuy и priceForSell. Параметры передал по ссылкам. Ведь так это делается? Ведь функции то не глобальные, а локальные.
Пр компиляции возникла ошибка:
Откуда ошибка? Ведь данные параметры я уже определил в функции GetPriceToInput()
а кренделек & после double для чего (я честно не знаю)?
Это помешательство на желании передавать параметры по ссылке. :-)
Это помешательство на желании передавать параметры по ссылке. :-)
А как иначе? Тоже самое по 100 раз рассчитывать?
Да, не верно я выразился. В общем-то. Если тут понятно, отложенник только по цене ставиться.
Вот код:
Вопрос по сути не сложный. Я передал в функцию Trade(int signal, double& priceForBuy, double& priceForSell) формальные параметры priceForBuy и priceForSell. Параметры передал по ссылкам. Ведь так это делается? Ведь функции то не глобальные, а локальные.
Пр компиляции возникла ошибка:
Откуда ошибка? Ведь данные параметры я уже определил в функции GetPriceToInput()
А как иначе? Тоже самое по 100 раз рассчитывать?
Оформляйте сигнальную часть эксперта, как в учебнике и будет Вам щастье!
Мной все ссыли Вам были даны в ветке ранее...
А как иначе? Тоже самое по 100 раз рассчитывать?
Ну тут примеров нет канкретных:
https://docs.mql4.com/ru/basis/variables/formal
Написано вверху где параметры функции как у меня, т.е. & после типа данных.
Ну тут примеров нет канкретных:
https://docs.mql4.com/ru/basis/variables/formal
Написано вверху где параметры функции как у меня, т.е. & после типа данных.
Может так будет компилироваться:
хотя структура код какая-то "левая"...