teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードの修正

2020/11/18 09:56

投稿

nisei2
nisei2

スコア19

title CHANGED
File without changes
body CHANGED
@@ -21,21 +21,14 @@
21
21
  #property version "1.00"
22
22
  #property strict
23
23
  #include "LibEA4.mqh"
24
+
24
-
25
+ //仕掛けシグナル関数-------------------------------------------------
25
- //直近日足の四本値
26
+ int Sig_Entry(){
26
- double H0 = iHigh(NULL,PERIOD_D1,0);
27
- double L0 = iLow(NULL,PERIOD_D1,0);
27
+ int ret = 0;
28
- double C0 = iClose(NULL,PERIOD_D1,0);
28
+
29
-
30
29
  //前日足の四本値
31
- double H1 = iHigh(NULL,PERIOD_D1,1);
32
- double L1 = iLow(NULL,PERIOD_D1,1);
33
30
  double C1 = iClose(NULL,PERIOD_D1,1);
34
31
 
35
- //前前日足の四本値
36
- double H2 = iHigh(NULL,PERIOD_D1,2);
37
- double L2 = iLow(NULL,PERIOD_D1,2);
38
-
39
32
  //前週の四本値
40
33
  double WH1 = iHigh(NULL,PERIOD_W1,1);
41
34
  double WL1 = iLow(NULL,PERIOD_W1,1);
@@ -51,7 +44,43 @@
51
44
  //前々月の4本値
52
45
  double MNH2 = iHigh(NULL,PERIOD_MN1,2);
53
46
  double MNL2 = iLow(NULL,PERIOD_MN1,2);
47
+
48
+ //月足が高値・安値ともに切り上がっている
49
+ if(MNH2 < MNH1 && MNL2 < MNL1){
50
+ //週足の高値・安値ともに切り下がっている
51
+ if(WH2 > WH1 && WL2 > WL1){
52
+ //週足の高値を日足の終値でブレイクする
53
+ if(WH1 < C1){
54
+ ret = 1;
55
+ return ret;
56
+ }//日足のif
57
+ }//週足のif
58
+ }//月足のif
59
+
60
+ return ret;
61
+ };//-------------------------------------------------
62
+
63
+
64
+
65
+
66
+ //手仕舞いシグナル関数-------------------------------------------------
67
+ int Sig_Exit(){
68
+ int ret = 0;
54
69
 
70
+ //前日足のlow
71
+ double L1 = iLow(NULL,PERIOD_D1,1);
72
+
73
+ //前々日足のlow
74
+ double L2 = iLow(NULL,PERIOD_D1,2);
75
+
76
+ //前々日の日足の安値を前日の日足の安値が割ってしまった時
77
+ if(L2 > L1)
78
+ ret = 1;
79
+ return ret;
80
+ };//-------------------------------------------------
81
+
82
+
83
+
55
84
  int OnInit()
56
85
  {
57
86
  return(INIT_SUCCEEDED);
@@ -74,36 +103,8 @@
74
103
 
75
104
  //成行売買
76
105
  MyOrderSendMarket(sig_entry,sig_exit,lots);
106
+
77
107
  }
78
-
79
- //仕掛けシグナル関数
80
- int Sig_Entry(){
81
- int ret = 0;
82
-
83
- //月足が高値・安値ともに切り上がっている
84
- if(MNH2 < MNH1 && MNL2 < MNL1){
85
- //週足の高値・安値ともに切り下がっている
86
- if(WH2 > WH1 && WL2 > WL1){
87
- //週足の高値を日足の終値でブレイクする
88
- if(WH1 < C1){
89
- ret = 1;
90
- return ret;
91
- }//日足のif
92
- }//週足のif
93
- }//月足のif
94
-
95
- return ret;
96
- };
97
-
98
- //手仕舞いシグナル関数
99
- int Sig_Exit(){
100
- int ret = 0;
101
-
102
- //前前日の日足の安値を前日の日足の安値が割ってしまった時
103
- if(L2 > L1)
104
- ret = 1;
105
- return ret;
106
- };
107
108
  ```
108
109
 
109
110
  ### 試したこと