PRIC_Work/问题解决/3k+RSI_01060102 - 已解决.mq5

382 lines
28 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:17:12 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| PRIC_EA_V1.0_3Kline.mq5 |
//| PRIC VENTURES |
//| <EFBFBD><EFBFBD>_ | t'` | ZWc | <EFBFBD>Rl |
//+------------------------------------------------------------------+
#property copyright "PRIC VENTURES"
#property link "Patience, Rationality, Insistence, Courage"
#property version "1.0"
#property description "PRIC_EA_V1.0_3Kline.mq5"
#property description "T<>/g<>Sx<1A>202301"
/*
<EFBFBD>dk:S<EFBFBD>W<EFBFBD>N<EFBFBD>~V{eu <EFBFBD>
0V{eu T<EFBFBD>y0
39hk<EFBFBD>~V{eu
0V{eu<EFBFBD>[<EFBFBD>s0
0<EFBFBD>b/gch0
*/
//<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| &&&dk:S<EFBFBD>W<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>[eQ{|/4Y<EFBFBD>e<EFBFBD>N&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>[eQ{|/4Y<EFBFBD>e<EFBFBD>N<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
#include <PRIC_Class\PRIC_C_OrderSystem_V1.0.mqh>
//<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| dk:S<EFBFBD>W<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>[INInput<EFBFBD>&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>[INInput<EFBFBD><EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
input int MA1=5;
input ENUM_MA_METHOD MAType1 = MODE_SMA;
input int MA2=50;
input ENUM_MA_METHOD MAType2 = MODE_SMA;
input int Slippage = 50; // <EFBFBD>n<EFBFBD>p
input double LotSize = 0.1; // NUSϑ
//<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| dk:S<EFBFBD>W<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>[INhQ@\<EFBFBD>&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>[INhQ@\<EFBFBD><EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
#define def_MagicValue 202301 //dkY<EFBFBD><EFBFBD>nMagic T<EFBFBD>/gUS<EFBFBD>S <EFBFBD>vpe<P<EFBFBD>N*NV{euN*N<EFBFBD>S <EFBFBD>
enum eChecker {None_Open, Long_Open, Short_Open};
eChecker m_Check;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double Lowest = 0;
double Highest = 0;
int sl_lastBar = 0;
double MA1Buffer[];
double MA2Buffer[];
int MA1Handle;
int MA2Handle;
int count;
//<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| dk:S<EFBFBD>W<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>[IN<EFBFBD>~<EFBFBD>g&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>[IN<EFBFBD>~<EFBFBD>g<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//--- ,gV{eu N<EFBFBD>m<EFBFBD>S
//<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| dk:S<EFBFBD>W<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>Xf<EFBFBD>[a<EFBFBD>/<EFBFBD>&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>Xf<EFBFBD>[a<EFBFBD>/<EFBFBD><EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
COrderSystem *order;
//<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| OnInit() <EFBFBD>Qpe/f R<EFBFBD>YS <EFBFBD>N<EFBFBD>NYt z<EFBFBD>^0&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%OnInit()<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
int OnInit()
{
//+------------------------------------------------------------------------------------------------------------------------+
//| dkY<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>!<EFBFBD>[INch<EFBFBD>S<EFBFBD>g/R<EFBFBD>Y/T<EFBFBD>R<EFBFBD>&&&&&&0 &&&&&&<EFBFBD>QV{eu&&&&&&
//+------------------------------------------------------------------------------------------------------------------------+
order = new COrderSystem(def_MagicValue);
m_Check = None_Open;
count = 0;
// <EFBFBD><EFBFBD><EFBFBD>SMAch<EFBFBD>S<EFBFBD>g <EFBFBD><EFBFBD><EFBFBD>^S_MRhTg
MA1Handle = iMA(Symbol(), Period(), MA1, 0, MAType1, PRICE_CLOSE);
MA2Handle = iMA(Symbol(), Period(), MA2, 0, MAType2, PRICE_CLOSE);
if(MA1Handle == INVALID_HANDLE || MA2Handle == INVALID_HANDLE)
{
Print("<00>e<EFBFBD>lR<>^MAch: ", GetLastError());
}
// <EFBFBD>[IN<EFBFBD>Q:S
ArraySetAsSeries(MA1Buffer, true);
ArraySetAsSeries(MA2Buffer, true);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| OnDeinit() <EFBFBD>Qpe<EFBFBD>y:N1Y%<EFBFBD>R<EFBFBD>YS <EFBFBD>/fR<EFBFBD>YS1Y%<EFBFBD><EFBFBD>N<EFBFBD>NYt z<EFBFBD>^0&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%OnDeinit()<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- ʑ>eRM<EFBFBD><EFBFBD>v<EFBFBD>QX[ <EFBFBD>2<EFBFBD>bk<EFBFBD>QX[<EFBFBD>l2<EFBFBD>
delete order;
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+------------------------------------------------------------------+
//| OnTick() <EFBFBD>Qpe/f<EFBFBD>Vh<EFBFBD>q<EFBFBD><EFBFBD>R <EFBFBD><EFBFBD>kS_<EFBFBD>Vh<EFBFBD>
NTick<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>eЏL<EFBFBD>0&<EFBFBD>% <EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%OnTick()<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%<EFBFBD>%
//+------------------------------------------------------------------+------------------------------------------------------------------+
void OnTick()
{
double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);
// <EFBFBD>NMAch-N Y6Rpenc
if(CopyBuffer(MA1Handle, 0, 0, 3, MA1Buffer) <= 0 ||
CopyBuffer(MA2Handle, 0, 0, 3, MA2Buffer) <= 0)
{
Print("CopyBuffer 1Y%<25>: ", GetLastError());
return;
}
// <EFBFBD><EFBFBD><EFBFBD>SS_MR<EFBFBD>TMRN9hK<EFBFBD>~<EFBFBD>v
double MA1_1 = MA1Buffer[1]; // S_MRK<EFBFBD>~
double MA1_2 = MA1Buffer[2]; // MRN9hK<EFBFBD>~
double MA2_1 = MA2Buffer[1];
double MA2_2 = MA2Buffer[2];
if(m_Check == None_Open)
{
if(MA1_1 > MA2_1)
{
order.MarketOpen(Symbol(), ORDER_TYPE_BUY, LotSize, Ask, Ask - 400*Point(), 0, "202301_Buy");
Print("ck8^_Y<01>");
m_Check = Long_Open;
Print("<00>NMO<4D>r`0Y0");
Print("0_Y<>N0T<>O<EFBFBD>S0", m_Check, "0");
}
}
int sl_currBar = iBars(Symbol(),Period());
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+------------------------------------------------------------------+
// Start - Qs^<EFBFBD>NT<EFBFBD>_<EFBFBD>N<EFBFBD>k<EFBFBD>e<EFBFBD><EFBFBD> N_US    <EFBFBD>Y N<EFBFBD>
/*
0<EFBFBD><EFBFBD>f0<EFBFBD>
:N<EFBFBD>NHNN<EFBFBD>k<EFBFBD>e<EFBFBD><EFBFBD> N<EFBFBD><EFBFBD>_UST <EFBFBD><EFBFBD>z6q<EFBFBD>S<EFBFBD><EFBFBD>_US<EFBFBD>N <EFBFBD><EFBFBD>S<EFBFBD>V<EFBFBD>Y N<EFBFBD>
<EFBFBD>V:N(W0196L<EFBFBD>0<EFBFBD>g<P$R<EFBFBD>es^<EFBFBD>N<EFBFBD>v<EFBFBD>Nx<EFBFBD><EFBFBD>R <EFBFBD><EFBFBD><EFBFBD>HQif(m_Check == None_Open):Ntrue <EFBFBD><EFBFBD>Qif(sl_currBar > sl_lastBar):Ntrue <EFBFBD>MbOЏL<EFBFBD>
get3KlineExtre();<EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>g<P<EFBFBD><EFBFBD>V:Nm_Check<EFBFBD>V0<EFBFBD>V<EFBFBD>[bk_c0s^<EFBFBD>NT*g<EFBFBD><EFBFBD>͑n <EFBFBD><EFBFBD>N<EFBFBD>OcLong_Open <EFBFBD>@b<EFBFBD>N<EFBFBD>g<P<P$R<EFBFBD>es^<EFBFBD>N<EFBFBD>v<EFBFBD>Nx <EFBFBD><EFBFBD>k<EFBFBD>f<EFBFBD>e19h
K<EFBFBD>~T<EFBFBD>NOЏL<EFBFBD>N!k <EFBFBD>N<EFBFBD>V:N19hK<EFBFBD>~<EFBFBD>SЏL<EFBFBD>1!k <EFBFBD><EFBFBD><EFBFBD>(Wif(Bid < Lowest)-N <EFBFBD>Bid<EFBFBD>v<EFBFBD>N<h<EFBFBD>k9hK<EFBFBD>~_N<EFBFBD>S<EFBFBD><EFBFBD><EFBFBD>S1!k <EFBFBD>N(WK<EFBFBD>~Rb_b<EFBFBD>e<EFBFBD><EFBFBD><EFBFBD>S <EFBFBD>Bid
<EFBFBD>N<h1\O<EFBFBD>Q<EFBFBD>s<EFBFBD>N N<EFBFBD>`<EFBFBD>Q<EFBFBD>
10S_Bid<EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>e <EFBFBD>K<EFBFBD>~<EFBFBD>vOpen<EFBFBD>N<h(W
NN0NO<P0
N<EFBFBD>e <EFBFBD><EFBFBD><EFBFBD>S_MRK<EFBFBD>~<EFBFBD>vif(Bid < Lowest)1\O:Nfalse <EFBFBD> NOۏeQs^<EFBFBD>Nv^͑n<EFBFBD>O<EFBFBD>S<EFBFBD>v<EFBFBD>Nx <EFBFBD><EFBFBD>[<EFBFBD><EFBFBD>N<EFBFBD>k<EFBFBD>e<EFBFBD><EFBFBD> N_US<EFBFBD>
20S_Bid<EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>e <EFBFBD>K<EFBFBD>~<EFBFBD>vOpen<EFBFBD>N<h(W
NN0NO<P0 N<EFBFBD>e <EFBFBD><EFBFBD><EFBFBD>S_MRK<EFBFBD>~<EFBFBD>vif(Bid < Lowest)1\O:Ntrue <EFBFBD>ۏeQs^<EFBFBD>N<EFBFBD><EFBFBD>R<EFBFBD>v<EFBFBD>Nx<EFBFBD>
<EFBFBD>1 <EFBFBD>ۏeQs^<EFBFBD>N<EFBFBD><EFBFBD>R<EFBFBD>NxT <EFBFBD><EFBFBD>V:NMarketClose()/fN*Nbool<EFBFBD>W<EFBFBD>Qpe <EFBFBD><EFBFBD>S<EFBFBD><EFBFBD> O<EFBFBD><EFBFBD>v<EFBFBD>Spe<h_cknx <EFBFBD>1\O<EFBFBD><EFBFBD>ck8^gbL<EFBFBD> <EFBFBD>6q<EFBFBD>Vtrue
bfalse <EFBFBD>ُ_N/f<EFBFBD>|<EFBFBD>~<EFBFBD>vMqlRequestyr'`<EFBFBD>Q<EFBFBD>[<EFBFBD>v0
<EFBFBD>2 <EFBFBD>@b<EFBFBD>NS_<EFBFBD>eK<EFBFBD>~<EFBFBD>vOpen<EFBFBD>N<h(W
NN0NO<P0 N<EFBFBD>e<EFBFBD>e <EFBFBD><EFBFBD>V:N<EFBFBD>NMO<EFBFBD>e1\<EFBFBD><EFBFBD>0<EFBFBD>V<EFBFBD>[bk_c0s^<EFBFBD>c<EFBFBD>N <EFBFBD><EFBFBD><EFBFBD>HN
MarketClose()<EFBFBD>QЏL<EFBFBD>PositionSelect(Symbol()) ? PositionGetInteger(POSITION_TICKET): (long)0<EFBFBD>e <EFBFBD><EFBFBD><EFBFBD>6q~b N0R<EFBFBD>NMOԏ<EFBFBD>V<EFBFBD>N0 <EFBFBD>
<EFBFBD>c@w<EFBFBD><EFBFBD><EFBFBD>Qpe<EFBFBD>N6qO<EFBFBD><EFBFBD>cknxgbL<EFBFBD><EFBFBD>S<EFBFBD> <EFBFBD>6qTgbL<EFBFBD><EFBFBD>c Neg<EFBFBD>vm_Check = None_Open;͑n<EFBFBD>O<EFBFBD>S <EFBFBD>1\<EFBFBD>S<EFBFBD>z6q<EFBFBD>S<EFBFBD>N_US<EFBFBD>N0
0Q<EFBFBD>R<EFBFBD>l0<EFBFBD><EFBFBD>V:N<EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>g<P<EFBFBD>f<EFBFBD>e/f:N<EFBFBD>Ns^<EFBFBD>N(u <EFBFBD>vQMR<EFBFBD>c/f g<EFBFBD>NMOX[(W <EFBFBD>Mb ggbL<EFBFBD>ُ<EFBFBD>k<EFBFBD>Nx<EFBFBD>v<EFBFBD>_<EFBFBD><EFBFBD> <EFBFBD>@b<EFBFBD>N(W<EFBFBD>O<EFBFBD>S<EFBFBD>hKmT <EFBFBD><EFBFBD>RN*N<EFBFBD>NMO<EFBFBD>hKm1\Q<EFBFBD>N
N<EFBFBD><EFBFBD><EFBFBD>0
S_<EFBFBD>O<EFBFBD>S<EFBFBD>hKmif(m_Check == Long_Open):Ntrue <EFBFBD>FO<EFBFBD>c@wtS<EFBFBD>hKm N0R<EFBFBD>NMO <EFBFBD>1\<EFBFBD><EFBFBD>f<EFBFBD>NMO<EFBFBD><EFBFBD>0<EFBFBD>V<EFBFBD>[bk_c0s^<EFBFBD>N <EFBFBD>:NvQ<EFBFBD>R*Nelse <EFBFBD>gbL<EFBFBD><EFBFBD>O<EFBFBD>S͑n0
// End - Qs^<EFBFBD>NT<EFBFBD>_<EFBFBD>N<EFBFBD>k<EFBFBD>e<EFBFBD><EFBFBD> N_US    <EFBFBD>Y
N */
//+------------------------------------------------------------------+------------------------------------------------------------------+
if(m_Check == Long_Open)
{
if(PositionSelect(_Symbol)) //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0<EFBFBD>NMO<EFBFBD>hKm0<EFBFBD>V:Nُ̑(uǏPositionSelect()<EFBFBD>N <EFBFBD>Tb<EFBFBD>MarketClose()̑1\ N<EFBFBD><EFBFBD><EFBFBD><EFBFBD>N <EFBFBD><EFBFBD>] Rd<EFBFBD>0
{
if(sl_currBar > sl_lastBar)
{
sl_lastBar = sl_currBar;
get3KlineExtre();
if(Bid < Lowest)
{
order.MarketClose(PositionGetInteger(POSITION_TICKET), Slippage);
Print("YUS<55>V0\<EFBFBD>NLowest0sQ<73><51><01>"); //0<EFBFBD>Nx<EFBFBD>S<EFBFBD>R0<EFBFBD>Ջ(u
Print("s^<5E>N<EFBFBD>e Lowest <00>v<P:N<1A>", Lowest);
m_Check = None_Open;
Print("0s^<5E>N0T<>O<EFBFBD>S0", m_Check, "0"); //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0<EFBFBD>Ջ(u
Lowest = 0; //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0s^<EFBFBD>NTR<EFBFBD>YS<EFBFBD>g<P
}
}
}
else //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0S_<EFBFBD>O<EFBFBD>S:NLong_Open<EFBFBD>NMOtS NX[(W<EFBFBD>e <EFBFBD>͑n<EFBFBD>O<EFBFBD>S
{
m_Check = None_Open;
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnTimer()
{
} //OnTimer>\<EFBFBD>b<EFBFBD>S
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
inline eChecker CheckPositionsStatus(void)
{
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
if(PositionGetTicket(i)>0)
{
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
return Long_Open;
}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
{
return Short_Open;
}
}
if(PositionGetTicket(i)==0)
{
return None_Open;
}
}
return None_Open;
}
//+------------------------------------------------------------------+
//--- <EFBFBD><EFBFBD><EFBFBD>S39hK<EFBFBD>~v<EFBFBD><EFBFBD>^b_`<EFBFBD>Qpe<EFBFBD>v<EFBFBD>-<EFBFBD>ff-eveningStar<EFBFBD><EFBFBD>^-hff-morningStar
int get3KlineExtre()
{
MqlRates klineArray[];
ArraySetAsSeries(klineArray, true);
int mqlrates_date = CopyRates(_Symbol, PERIOD_CURRENT, 0, 4, klineArray);
//--- <EFBFBD><EFBFBD><EFBFBD>S$R<EFBFBD>eK<EFBFBD>~b_`@b<EFBFBD><EFBFBD>vpenc
datetime klineOpenTime = klineArray[2].time; //0<EFBFBD>Nx<EFBFBD>S<EFBFBD>R0"}_9e:N2 <0C>(u<>N<EFBFBD>~6RNO<P<>vc:y<>{4Y
double open1 = klineArray[1].open;
double open2 = klineArray[2].open;
double open3 = klineArray[3].open;
double high1 = klineArray[1].high;
double high2 = klineArray[2].high;
double high3 = klineArray[3].high;
double low1 = klineArray[1].low;
double low2 = klineArray[2].low;
double low3 = klineArray[3].low;
double close1 = klineArray[1].close;
double close2 = klineArray[2].close;
double close3 = klineArray[3].close;
long vol1 = klineArray[1].tick_volume;
long vol2 = klineArray[2].tick_volume;
long vol3 = klineArray[3].tick_volume;
//
if((low1 > low2) && (low3 > low2))
{
if((open1 < close1) && (open2 < close2))
{
Lowest = low2;
count++; //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0(u<EFBFBD>N<EFBFBD>~6RNO<P<EFBFBD>vc:y<EFBFBD>e,g
string text0 = (string)count; //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0(u<EFBFBD>N<EFBFBD>~6RNO<P<EFBFBD>vc:y<EFBFBD>e,g
string text1 = (string)Lowest; //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0(u<EFBFBD>N<EFBFBD>~6RNO<P<EFBFBD>vc:y<EFBFBD>e,g
createObj(klineOpenTime, Lowest, 217, clrYellow, ",{" + text0 + "!k<>f<EFBFBD>eNO<P" + text1); //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0(u<EFBFBD>N<EFBFBD>~6RNO<P<EFBFBD>vc:y<EFBFBD>e,g
Print("<00>g\<P<>f<EFBFBD>e<1A>0", Lowest, "0"); //0<EFBFBD>e<EFBFBD>X<EFBFBD>Nx0(u<EFBFBD>N<EFBFBD>Ջ
return -1;
}
//--- $R<EFBFBD>ev<EFBFBD><EFBFBD><EFBFBD>b_`<EFBFBD><EFBFBD>ff-Evening Star
//--- <EFBFBD>Y<EFBFBD>gPpe,{29h
if((high1 < high2) && (high3 < high2))
{
if((open1 > close1) && (open2 > close2))
{
Highest = high2;
return 1;
}
}
}
//--- ԏ<EFBFBD>V0<EFBFBD>Nh<EFBFBD>39hk<EFBFBD>~*gb_bv<EFBFBD>0<EFBFBD>^<EFBFBD>~<EFBFBD>g
return 0;
}
//+------------------------------------------------------------------+
//0<EFBFBD>e<EFBFBD>X<EFBFBD>Qpe0(u<EFBFBD>N<EFBFBD>(u<EFBFBD>N(W<EFBFBD>Vh<EFBFBD>
N<EFBFBD>~6R<EFBFBD>Q <EFBFBD><EFBFBD>hKm0R<EFBFBD>v&{Tag<EFBFBD>N<EFBFBD>vNO<P0ُ<EFBFBD>eN*N<EFBFBD>(u<EFBFBD>Qpe <EFBFBD><EFBFBD>S9hnc<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[6R<EFBFBD>O9e
//+------------------------------------------------------------------+
//--- (W<EFBFBD>Vh<EFBFBD>R<EFBFBD>^v<EFBFBD>0<EFBFBD>^b_`<EFBFBD>eW[<EFBFBD>Qpe
void createObj(datetime klineOpenTime, double price, int arrawCode,
color clr, string txt)
{
//--- <EFBFBD><EFBFBD>n<EFBFBD>Vh<EFBFBD> T<EFBFBD>y <EFBFBD><EFBFBD>S9hnc<EFBFBD><EFBFBD><EFBFBD>[IN <EFBFBD>ُ̑Yuzz<EFBFBD>O<EFBFBD>N(W N<EFBFBD>e<EFBFBD><EFBFBD>n
string objName = " ";
//--- R<EFBFBD>^W[&{2N<EFBFBD>Oo` <EFBFBD>v^X[<EFBFBD>P(WobjName-N
StringConcatenate(objName, "<00>O<EFBFBD>S@", klineOpenTime, "(W",
DoubleToString(price, _Digits), "<08>",
arrawCode, " <09>");
//--- (W<EFBFBD>Vh<EFBFBD>
NR<EFBFBD>^N*N<EFBFBD>{4Yir<EFBFBD>N <EFBFBD>v^$R<EFBFBD>e <EFBFBD><EFBFBD>Y<EFBFBD><EFBFBD>VtrueR<EFBFBD>^b<EFBFBD>R
if(ObjectCreate(0, objName, OBJ_ARROW, 0, klineOpenTime, price))
{
//--- <EFBFBD>{4YR<EFBFBD>^b<EFBFBD>R <EFBFBD>:NvQ<EFBFBD><EFBFBD>n<EFBFBD>{4Y7h_<EFBFBD>T<EFBFBD><EFBFBD>r<EFBFBD>
ObjectSetInteger(0, objName, OBJPROP_ARROWCODE, arrawCode);
ObjectSetInteger(0, objName, OBJPROP_COLOR, clr);
//--- $R<EFBFBD>e/fhff/<EFBFBD>ff <EFBFBD><EFBFBD>Q<EFBFBD>[<EFBFBD>{4Y>en<EFBFBD>vMOn
if(clr == clrYellow)
{
//--- hff <EFBFBD><EFBFBD>{4Y>en(WPpe,{29hk<EFBFBD>~<EFBFBD>vgNO<EFBFBD>NY
ObjectSetInteger(0, objName, OBJPROP_ANCHOR, ANCHOR_TOP);
}
if(clr == clrRed)
{
//--- <EFBFBD>ff <EFBFBD><EFBFBD>{4Y>en(WPpe,{29hk<EFBFBD>~<EFBFBD>v<EFBFBD>NY
ObjectSetInteger(0, objName, OBJPROP_ANCHOR, ANCHOR_BOTTOM);
}
}
//--- R<EFBFBD>^N*N<EFBFBD>e<EFBFBD>vir<EFBFBD>N TW[ <EFBFBD>(u<EFBFBD>NR<EFBFBD>^<EFBFBD>e,gir<EFBFBD>N<EFBFBD>ecT
string klineName = objName + txt;
//--- (W<EFBFBD>{4Y<EFBFBD>e<EFBFBD>QR<EFBFBD>^N*N<EFBFBD>e,gir<EFBFBD>N <EFBFBD>(u<EFBFBD>N<EFBFBD><EFBFBD>ʑ<EFBFBD>{4Y<EFBFBD>v+TIN
if(ObjectCreate(0, klineName, OBJ_TEXT, 0, klineOpenTime, price))
{
//--- <EFBFBD>e,gir<EFBFBD>NR<EFBFBD>^b<EFBFBD>R <EFBFBD>:NvQ<EFBFBD><EFBFBD>n<EFBFBD><EFBFBD>r<EFBFBD><EFBFBD>T<EFBFBD>e,g<EFBFBD>Q<EFBFBD>[
ObjectSetString(0, klineName, OBJPROP_TEXT, " " + txt);
ObjectSetInteger(0, klineName, OBJPROP_COLOR, clr);
}
}