So-net無料ブログ作成
検索選択

今日のトレード [自作EA]

SnapCrab_NoName_2017-5-17_23-19-54_No-00.png


多少、頭が働くようになったので1分足を見た。自分のセットアップが完了出来ていることを確認(上位足良し、RCI52良し、ブレイク良し、もちろんPIVOTの上で良し)しロングエントリー。すぐにRCI9が上限値に到達したので利確した。もったいない気もするけど、良しとする。

やっぱりPCと睨めっこは面倒なので、これをEAにしよう、っと。今週末に作成だ。まだ実績など無いので、フル稼働EAにする気はないので裁量EAにするつもりです。

iClose [自作EA]

終値を取得

double iClose(
string symbol,
int timeframe,
int shift
);

string symbol
終値を取得したい通貨ペア名を指定します。
通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
特定の通貨ペア名を指定せず、EA等を適用したチャートの通貨ペアの終値を取得したい場合は、「NULL」と記述します。
int timeframe
以下の表に従って、終値を取得する時間軸を指定します。
timeframeの種類
種 類
定 数
内 容
PERIOD_CURRENT

現在の時間足

PERIOD_M1

1分足
PERIOD_M5

5分足
PERIOD_M15
15
15分足
PERIOD_M30
30
30分足
PERIOD_H1
60
1時間足
PERIOD_H4
240
4時間足
PERIOD_D1
1440
日 足
PERIOD_W1
10080
週 足
PERIOD_MN1
43200
月 足

int shift
終値を取得したいバーの位置を指定します。
終値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述。
タグ:iClose

とりあえずこれをキチンとマスターしよう [自作EA]


// マジックナンバーの定義
#define MAGIC 1192

// パラメーターの設定//
extern double Lots = 1.0; // 取引ロット数
extern int Slip = 10; // 許容スリッページ数
extern string Comments = " "; // コメント

// 変数の設定//
int Ticket_L = 0; // 買い注文の結果をキャッチする変数
int Ticket_S = 0; // 売り注文の結果をキャッチする変数
int Exit_L = 0; // 買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; // 売りポジションの決済注文の結果をキャッチする変数

double Heiken_Open_2 = 0; /*2 本前のバーの平均足の始値に変身した  
              iCustom 関数を代入する変数*/
double Heiken_Close_2 = 0; /*2 本前のバーの平均足の終値に変身した
              iCustom 関数を代入する変数*/
double Heiken_Open_1 = 0; /*1 本前のバーの平均足の始値に変身した
             iCustom 関数を代入する変数*/
double Heiken_Close_1 = 0; /*1 本前のバーの平均足の終値に変身した
iCustom 関数を代入する変数*/


int start()
{

Heiken_Open_2 = iCustom(NULL,0,"Heiken Ashi",0,2);
Heiken_Close_2 = iCustom(NULL,0,"Heiken Ashi",3,2);
Heiken_Open_1 = iCustom(NULL,0,"Heiken Ashi",0,1);
Heiken_Close_1 = iCustom(NULL,0,"Heiken Ashi",3,1);

// 買いポジションのエグジット
if( Heiken_Open_2 <= Heiken_Close_2
&& Heiken_Open_1 > Heiken_Close_1
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}

// 売りポジションのエグジット
if( Heiken_Open_2 >= Heiken_Close_2
&& Heiken_Open_1 < Heiken_Close_1
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}

// 買いエントリー
if( Heiken_Open_2 >= Heiken_Close_2
&& Heiken_Open_1 < Heiken_Close_1
&& ( Ticket_L == 0 || Ticket_L == -1 )
&& ( Ticket_S == 0 || Ticket_S == -1 ))
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red);
}

// 売りエントリー
if( Heiken_Open_2 <= Heiken_Close_2
&& Heiken_Open_1 > Heiken_Close_1
&& ( Ticket_S == 0 || Ticket_S == -1 )
&& ( Ticket_L == 0 || Ticket_L == -1 ))
{
Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue);
}

return(0);
}

Ticket [自作EA]

//マジックナンバーの定義
#define MAGIC 4649

//パラメーターの設定//
extern double Lots = 1.0; //取引ロット数
extern int Slip = 10; //許容スリッページ数
extern string Comments = ""; //コメント

//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0; //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; //売りポジションの決済注文の結果をキャッチする変数


int start()
{

//買いポジションのエグジット
if( ■■■■
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}

//売りポジションのエグジット
if( □□□□
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}

//買いエントリー
if( ▲▲▲▲
&& ( Ticket_L == 0 || Ticket_L == -1 )
&& ( Ticket_S == 0 || Ticket_S == -1 ))
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red);
}

//売りエントリー
if( △△△△
&& ( Ticket_S == 0 || Ticket_S == -1 )
&& ( Ticket_L == 0 || Ticket_L == -1 ))
{
Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue);
}


return(0);
}

タグ:Ticket MQL

pos [自作EA]

pos > 0
0より大きい場合は現在買いポジション有り。

pos < 0
0より大きい場合は現在売りポジション有り。

※ pos==0 の条件で追加エントリーを無くす。


タグ:POS MQL

EAを自作するぞ! [自作EA]

連休中に断念したSPEをいじってました。やっぱり、SPEのロジックでは勝てない、と判断しました。しかし、少し改良すればいけそうなので自作することにしました。いつになるか分からないけど、コツコツとやっていきます。

以前、作ったのはとめどもなくロットを増やしてしまう、というプログラムミスで撃沈でした。先ずは、エントリーしたらイグジットするまで追加のエントリーをさせないようなプログラムにしてからロジック作成だな。ロジックはもう決めてあるので、それをプログラムにするだけなのですぐに完成するはずだ。