Есть условие, допустим
PlaySound ("alert.wav") ;
***
1) Если я хочу вместо alert.wav поставить любую другую музыку, и задавать ее вручную перед запуском эксперта или выбирать из списка
2) Писать вместо *PlaySound ("alert.wav") * любой другой оператор во внешнем поле
3) вместо *** сделать сброс всех параметров советника на default после исполнения оператора т.е он выключится после исполнения.
- Во входных параметрах ввести переменную string - то есть будете вручную писать название мелодии:input string name_wav="alert.wav"Выбирать из списка (при помощи enum и WinAPI пока отбрасываем - рано)
- Низзя
- Можно ввести флаг - переменную типа bool (эта переменная прописывается в области задания глобальных переменных программы - в "шапке" и в OnInit её инициализируем значением false):if(!plaed)Таким образом заход будет осуществлён только один раз.
{
if (Price>=100)
{
PlaySound ("alert.wav") ;
played=true;
}
}
Каким образом введение в советник глобальной переменной сбросит настройки?
про ввод и инициализацию я понял, непонятно как она будет сбрасывать
и почему input а не externКаким образом введение в советник глобальной переменной сбросит настройки? я чет недопонял
А кто говорил о вводе глобальной переменной? Это Вы что-то не поняли. Я сказал: "переменную типа bool (эта переменная прописывается в области задания глобальных переменных программы - в "шапке" и в OnInit её инициализируем значением false):".
"Шапка" - область межу названием программы и функцией OnInit(). Например:
//| iIndicators(barabashkakvn's edition).mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#define MODE_LOW 1
#define MODE_HIGH 2
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\DealInfo.mqh>
#include <Trade\OrderInfo.mqh>
CPositionInfo m_position; // trade position object
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object
CAccountInfo m_account; // account info wrapper
CDealInfo m_deal; // deals object
COrderInfo m_order; // pending orders object
//--- input parameters
input double m_lots=1.0; // volume transaction
input double InpLots =0.1; // Lots
input ushort InpTakeProfit =50; // Take Profit (in pips)
//---
ulong m_ticket;
ulong m_magic=15489; // magic number
ulong m_slippage=10; // slippage
int handle_iADX; // variable for storing the handle of the iADX indicator
int handle_iCCI; // variable for storing the handle of the iCCI indicator
int handle_iFractals; // variable for storing the handle of the iFractals indicator
int handle_iMA; // variable for storing the handle of the iMA indicator
int handle_iMACD; // variable for storing the handle of the iMACD indicator
int handle_iStochastic; // variable for storing the handle of the iStochastic indicator
int handle_iSAR; // variable for storing the handle of the iSAR indicator
int handle_iMomentum; // variable for storing the handle of the iMomentum indicator
int handle_iWPR; // variable for storing the handle of the iWPR indicator
int handle_iAC; // variable for storing the handle of the iAC indicator
int handle_iBullsPower; // variable for storing the handle of the iBullsPower indicator
int handle_iBearsPower; // variable for storing the handle of the iBearsPower indicator
int handle_iATR; // variable for storing the handle of the iATR indicator
int handle_iBands; // variable for storing the handle of the iBands indicator
ENUM_ACCOUNT_MARGIN_MODE m_margin_mode;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//SetMarginMode();
//if(!IsHedging())
Каким образом введение в советник глобальной переменной сбросит настройки?
про ввод и инициализацию я понял, непонятно как она будет сбрасывать
и почему input а не externПотому что "extern" - это стиль динозавров. В MQL5 используют "input".
Добавлено: "сбрасывать" настройки из программы MQL5 в принципе невозможно. Просто после первого проигрыша звука переменная played=true и мы не попадём внутрь этого блока. То есть советник будет продолжать работать, но не будет заходить внутрь этого блока.
Ок, набросаю схему
Открываю пару в мт4
Прописываю в условиях
настройки iMa
бул автовход 1
бул автовыход 1
открыть по iMa(ввожу нужные значения)
закрыть по по iMa(ввожу нужные значения)
цель - бот ловит точки, открывает, закрывает, вырубается и все настройки сбрасываются по умолчанию, бот висит на графике но больше ничего не делает
смысл советника - не ждать у монитора.
Ок, набросаю схему
Открываю пару в мт4
Прописываю в условиях
настройки iMa
бул автовход 1
бул автовыход 1
открыть по iMa(ввожу нужные значения)
закрыть по по iMa(ввожу нужные значения)
цель - бот ловит точки, открывает, закрывает, вырубается и все настройки сбрасываются по умолчанию, бот висит на графике но больше ничего не делает
смысл советника - не ждать у монитора.
Вот как это может выглядеть в MQL5 коде - таймер каждые 10 секунд сбрасывает флаг, а значит примерно раз в десять секунд звучит музыка:
//| TestEA.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
//--- input parameter
input string file_name="alert.wav";
//---
bool plaed;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer (every 10 seconds)
EventSetTimer(10);
//---
plaed=false;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(!plaed)
{
PlaySound("alert.wav");
plaed=true;
}
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
plaed=false;
}
//+------------------------------------------------------------------+
Добавлено: заметьте - событие OnTick() за 10 секунд может произойти и два раза и 50 раз - но пока флаг plaed==true, мы не можем проиграть музыку.
Ок, набросаю схему
Открываю пару в мт4
Прописываю в условиях
настройки iMa
бул автовход 1
бул автовыход 1
открыть по iMa(ввожу нужные значения)
закрыть по по iMa(ввожу нужные значения)
цель - бот ловит точки, открывает, закрывает, вырубается и все настройки сбрасываются по умолчанию, бот висит на графике но больше ничего не делает
смысл советника - не ждать у монитора.
А кто говорил о вводе глобальной переменной? Это Вы что-то не поняли. Я сказал: "переменную типа bool (эта переменная прописывается в области задания глобальных переменных программы - в "шапке" и в OnInit её инициализируем значением false):".
"Шапка" - область межу названием программы и функцией OnInit(). Например:
//| iIndicators(barabashkakvn's edition).mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#define MODE_LOW 1
#define MODE_HIGH 2
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\DealInfo.mqh>
#include <Trade\OrderInfo.mqh>
CPositionInfo m_position; // trade position object
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object
CAccountInfo m_account; // account info wrapper
CDealInfo m_deal; // deals object
COrderInfo m_order; // pending orders object
//--- input parameters
input double m_lots=1.0; // volume transaction
input double InpLots =0.1; // Lots
input ushort InpTakeProfit =50; // Take Profit (in pips)
//---
ulong m_ticket;
ulong m_magic=15489; // magic number
ulong m_slippage=10; // slippage
int handle_iADX; // variable for storing the handle of the iADX indicator
int handle_iCCI; // variable for storing the handle of the iCCI indicator
int handle_iFractals; // variable for storing the handle of the iFractals indicator
int handle_iMA; // variable for storing the handle of the iMA indicator
int handle_iMACD; // variable for storing the handle of the iMACD indicator
int handle_iStochastic; // variable for storing the handle of the iStochastic indicator
int handle_iSAR; // variable for storing the handle of the iSAR indicator
int handle_iMomentum; // variable for storing the handle of the iMomentum indicator
int handle_iWPR; // variable for storing the handle of the iWPR indicator
int handle_iAC; // variable for storing the handle of the iAC indicator
int handle_iBullsPower; // variable for storing the handle of the iBullsPower indicator
int handle_iBearsPower; // variable for storing the handle of the iBearsPower indicator
int handle_iATR; // variable for storing the handle of the iATR indicator
int handle_iBands; // variable for storing the handle of the iBands indicator
ENUM_ACCOUNT_MARGIN_MODE m_margin_mode;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//SetMarginMode();
//if(!IsHedging())
Уже пора выдавать медаль )))) Я бы на йох давно послал, не выдержал бы ))
его можно просто грохнуть командой ExpertRemove
Cпасибо, подходит)
Вот как это может выглядеть в MQL5 коде - таймер каждые 10 секунд сбрасывает флаг, а значит примерно раз в десять секунд звучит музыка:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть условие, допустим
PlaySound ("alert.wav") ;
***
1) Если я хочу вместо alert.wav поставить любую другую музыку, и задавать ее вручную перед запуском эксперта или выбирать из списка
2) Писать вместо *PlaySound ("alert.wav") * любой другой оператор во внешнем поле
3) вместо *** сделать сброс всех параметров советника на default после исполнения оператора т.е он выключится после исполнения.