コーディングの方法は? - ページ 60

 

Kalenzoさん、ありがとうございます。

OP_BUYLIMITで試したのですが、うまくいきません。

OP_BUYSTOPで試してみます。

 

クイックコーディングの質問

画面上に(すべての終値の)平均値で横線を 引くにはどうしたらいいのでしょうか?そのための具体的なコードはあるのでしょうか?

 

シンプルなブレイクアウトEA

//+------------------------------------------------------------------+

//| SimpleBreakoutEA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "jjk2"

#property link ""

//---- input parameters

extern int ____TIME_RANGE____;

extern int TimeRange = 1; // # of Hours to look back from TimeEnd. ex) if breakout is @ 22:00 GMT to 23:00 GMT. Total TimeRange to lookback is 8 hrs.

extern int TimeBegin = 22;

extern int TimeEnd = 23;

extern int CancelTime = 20; // ALL REMAINING ORDERS WILL BE CANCELED AT THIS INDICATED TIME.

extern int ______FILTERS______;

extern int TriggerFilter = 0;

extern bool AllowBreakEven = True;

extern int ______ORDERS______;

extern double Lots = 0.1;

extern int StopLoss = 50;

extern int TakeProfit = 100;

extern int Slippage = 2;

extern int MagicNumber = 23423;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

int start()

{

// OPEN ORDERS @ HIGH/LOW from TIMEBEGIN to TimeEND

if (Hour() >= TimeBegin-1 && Hour() >= TimeEnd)

{

int HH = iHighest(NULL, 0, MODE_HIGH,TimeRange,0);

int LL = iLowest(NULL, 0, MODE_LOW,TimeRange,0);

}

double SL_High = Ask - (StopLoss * Point);

double SL_Low = Bid + (StopLoss*Point);

double TP_High = Ask + (TakeProfit*Point);

double TP_Low = Bid - (TakeProfit*Point);

if ( Ask > HH + TriggerFilter) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL_High, TP_High, "Breakout Buy", MagicNumber, NULL, Blue);

if ( Bid < LL + TriggerFilter) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, SL_Low, TP_Low, "Breakout Sell", MagicNumber, NULL, Red);

// MOVE SL @ BreakEven if allowed. MarketPrice distance Open Price > stop*point, then stop must equal to MarketPrice - Stop*point as new stoploss.

int total = 0;

if ( AllowBreakEven == True )

{

for(total = OrdersTotal() - 1; total >= 0; total--)

{

OrderSelect(total, SELECT_BY_POS);

if ( Bid - OrderOpenPrice() > SL_High*Point )

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - SL_High*Point, OrderTakeProfit(),0, CLR_NONE);

if ( OrderOpenPrice() - Ask > SL_Low*Point )

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + SL_Low*Point , OrderTakeProfit(),0, CLR_NONE);

}

}

return(0);

}

//+------------------------------------------------------------------+

がなぜか動作しない・・・誰か原因わかる?

 
 

インジケータをEA化するには?

こんにちは、インジケータをEAにする方法を教えてください。

多くのインジケータは、ある条件になると矢印のサインを出すので、EAでテストしてみたいのです。

私はEAが形成された矢印に従って取引を行うようにしたいです。

どなたか教えてください。ありがとうございます。

 

こちらは矢印記号によると

https://www.mql5.com/en/forum/173249/page51

 

付属のインジケータをEAにするのはどうでしょうか?

どなたか教えてください。ありがとうございます。

 
ファイル:
envelopes.mq4  3 kb
 

コード構成

こんにちは。

私はメタトレーダーは初めてですが、プログラミングはとても経験豊富です。MTでExpert Advisorのサンプルと少し複雑なIndicatorをいくつか作りました。しかし、複雑なEAをどのように構成すればよいのかがわかりません。私は、EAが異なるセットアップ条件をチェックするためにいくつかの「シグナル」関数を呼び出すことを望んでいます。

これらの関数はどのようにコーディングすればよいのでしょうか?

1.EA内の「インライン」関数として

2.画面に書き込むのではなく、値を返す「別の」インジケータとして?

3. iMAを呼び出すような、他の "別の "関数として呼び出す。

1を選択した場合、EAのインライン関数がCloseを使用して過去200バーを実行し、iMAを呼び出すことができますか?

2.は大丈夫でしょうか?インジケータをコーディングする場合、「利用可能な」すべてのバーが処理されますが、もちろんEAには必要ありません。

代替案3は論理的な選択のように思えますが、バック テストで動作するようにそれをどのように構成するか、それに何を渡す必要があるか、関数がデフォルトでアクセスできるもの(例えばCloseなど)は何か、よくわかりません。

シグナル」関数で確立する必要がある例として、現在のトレンドは何か、いつ始まったのか、があります。私はそれをインジケータでコード化しましたので、実際のコードを行う方法を知っています。

何かアドバイスがあれば幸いです。

Ingvar

 
ingvar_e:
こんにちは。

私はメタトレーダーは初めてですが、プログラミングはとても経験豊富です。MTでExpert Advisorのサンプルと少し複雑なIndicatorをいくつか作りました。明確でないのは、かなり複雑なEAをどのように構成するかということです。私は、EAが異なるセットアップ条件をチェックするためにいくつかの「シグナル」関数を呼び出すことを望んでいます。

これらの関数はどのようにコーディングすればよいのでしょうか?

1.EA内の「インライン」関数として

2.画面に書き込むのではなく、値を返す「別の」インジケータとして?

3. iMAを呼び出すような、他の "別の "関数として呼び出す。

1を選択した場合、EAのインライン関数がCloseを使用して過去200バーを実行し、iMAを呼び出すことができますか?

2.は大丈夫でしょうか?インジケータをコーディングする場合、「利用可能な」すべてのバーが処理されますが、もちろんEAには必要ありません。

代替案3は論理的な選択のように思えますが、バックテストで動作するようにそれをどのように構成するか、それに何を渡す必要があるか、関数がデフォルトでアクセスできるもの(例えばCloseなど)は何か、よくわかりません。

シグナル」関数で確立する必要がある例として、現在のトレンドは何か、いつ始まったのか、があります。私はそれをインジケータでコード化しましたので、実際のコードを行う方法を知っています。

何かアドバイスがあれば幸いです。

イングヴェール

おそらく、すでにこの方法を知っていると思いますので、そうであれば申し訳ありません。

現在の バーの移動平均

iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);

200本前の 移動平均

iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,200) です。

現在のバーから過去のバーまで、好きなバーから移動平均を呼び出すことができます。