Народ, как правильно сделать чтоб работало?

 

Есть условие, допустим  

if (Price>=100)
PlaySound ("alert.wav") ;
***

1) Если я хочу вместо  alert.wav поставить любую другую музыку, и задавать ее вручную перед запуском эксперта или выбирать из списка

2) Писать вместо  *PlaySound ("alert.wav") * любой другой оператор во внешнем поле

3) вместо *** сделать сброс всех параметров советника на default после исполнения оператора т.е он выключится после исполнения.

 
trader781:

Есть условие, допустим  

if (Price>=100)
PlaySound ("alert.wav") ;
***

1) Если я хочу вместо  alert.wav поставить любую другую музыку, и задавать ее вручную перед запуском эксперта или выбирать из списка

2) Писать вместо  *PlaySound ("alert.wav") * любой другой оператор во внешнем поле

3) вместо *** сделать сброс всех параметров советника на default после исполнения оператора т.е он выключится после исполнения.

  1. Во входных параметрах ввести переменную string - то есть будете вручную писать название мелодии:
    input string name_wav="alert.wav"
    Выбирать из списка (при помощи enum и WinAPI пока отбрасываем - рано)
  2. Низзя
  3. Можно ввести флаг - переменную типа bool (эта переменная прописывается в области задания глобальных переменных программы - в "шапке" и в OnInit её инициализируем значением false):
    if(!plaed)
      {
       if (Price>=100)
         {
          PlaySound ("alert.wav") ;
          played=true;
         }
      }
    Таким образом заход будет осуществлён только один раз.
 
Vladimir Karputov

Каким образом введение в советник глобальной переменной сбросит настройки?

про ввод и инициализацию я понял, непонятно как она будет сбрасывать

и почему input  а не extern
 
trader781:
Каким образом введение в советник глобальной переменной сбросит настройки? я чет недопонял

А кто говорил о вводе глобальной переменной? Это Вы что-то не поняли. Я сказал: "переменную типа 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())


 

 
trader781:

Каким образом введение в советник глобальной переменной сбросит настройки?

про ввод и инициализацию я понял, непонятно как она будет сбрасывать

и почему input  а не extern

Потому что "extern" - это стиль динозавров. В MQL5 используют "input".

Добавлено: "сбрасывать" настройки из программы MQL5 в принципе невозможно. Просто после первого проигрыша звука переменная played=true и мы не попадём внутрь этого блока. То есть советник будет продолжать работать, но не будет заходить внутрь этого блока.

 

Ок, набросаю схему

Открываю пару в мт4

Прописываю в условиях

настройки iMa

бул автовход 1

бул автовыход 1 

открыть по iMa(ввожу нужные значения) 

закрыть по по iMa(ввожу нужные значения)

 

цель - бот ловит точки, открывает, закрывает, вырубается и все настройки сбрасываются по умолчанию, бот висит на графике но больше ничего не делает

смысл советника -  не ждать у монитора.

 
trader781:

Ок, набросаю схему

Открываю пару в мт4

Прописываю в условиях

настройки iMa

бул автовход 1

бул автовыход 1 

открыть по iMa(ввожу нужные значения) 

закрыть по по iMa(ввожу нужные значения)

 

цель - бот ловит точки, открывает, закрывает, вырубается и все настройки сбрасываются по умолчанию, бот висит на графике но больше ничего не делает

смысл советника -  не ждать у монитора.

Извините, по старому языку не помогаю. Пищите на MQL5 - с радостью помогу.
 

Вот как это может выглядеть в 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, мы не можем проиграть музыку.

Файлы:
TestEA.mq5  4 kb
 
trader781:

Ок, набросаю схему

Открываю пару в мт4

Прописываю в условиях

настройки iMa

бул автовход 1

бул автовыход 1 

открыть по iMa(ввожу нужные значения) 

закрыть по по iMa(ввожу нужные значения)

 

цель - бот ловит точки, открывает, закрывает, вырубается и все настройки сбрасываются по умолчанию, бот висит на графике но больше ничего не делает

смысл советника -  не ждать у монитора.

его можно просто грохнуть командой ExpertRemove
 
Vladimir Karputov:

А кто говорил о вводе глобальной переменной? Это Вы что-то не поняли. Я сказал: "переменную типа 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())

Уже пора выдавать медаль )))) Я бы на йох давно послал, не выдержал бы ))

medla


 

 
Vladislav Andruschenko:
его можно просто грохнуть командой ExpertRemove

Cпасибо, подходит)

 

 

Vladimir Karputov:

Вот как это может выглядеть в MQL5 коде - таймер каждые 10 секунд сбрасывает флаг, а значит примерно раз в десять секунд звучит музыка:

Спасибо, но я пока не хочу переходить на мт5 потому что все что у меня стоит там не будет работать.