先に仕掛の方を説明します。
仕掛けの条件は以下の通りです。
<買いエントリー>
・終値ベースで、為替レートとMACDラインが前日の値よりも大きくなる時は【成行で買いエントリー】
で、この条件をプログラムしたものが以下です。
//仕掛判断
if(entrybar!=Bars && buypos==0 && Close[1]>Close[2] && macd1>macd2)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",magic01,0,Blue);
entrybar=Bars;
}
終値ベース、
ということなので、完成したローソク足の値のみを扱うことになり、
ローソク足が次の足に移った時に判断します。
為替レートとMACDラインが前日の値よりも大きくなる時、
は、終値ベースの為替レートつまりローソク足の終値が前日より上がり、
MACDのラインが前日の値より大きくなるということです。
例えば、下の画像の青矢印がこの条件に当てはまるポイントです。
ポイントから1本過去と2本過去の終値を比べると上がっています。
MACDのラインは赤のラインで、このラインも1本過去と2本過去では大きくなっています。
終値だけなら、2本過去と3本過去でも上がっていますが、
この時のMACDラインは下がっていますので条件に当てはまりません。
この部分を表しているのが、
Close[1]>Close[2] && macd1>macd2
です。
それぞれ1本過去と2本過去の値を比べて、1本過去のものが大きい時という表し方です。
その前の、
buypos==0
は、ポジションがない時という意味です。
仕掛の判断をする前に、ポジションの数を数えます。
今回は複数のポジションを持たないので、ポジションが0の時、
すなわちポジションがない時のみ注文を出すようにしています。
また、買いの発注の際に、
entrybar=Bars;
としています。
Bars はチャートのローソク足の本数を数える関数です。
ローソク足は、新しい足になると本数が増えますが、次の足になるまで本数が増えません。
entrybar に仕掛けたローソク足を覚えておくのに使用します。
判断の条件に、
entrybar!=Bars
としているのは、仕掛けた時のローソク足の数と、
現在のローソク足の数を比べて事なっている時、という設定です。
これは、一度入った足で再度入らないようにするためです。
この設定をしておくと、仕掛けた足でポジションを決済した場合でも、
そのローソク足では再度仕掛けることはありません。
その時のロジックに合わせて設定してください。
それでは次回、決済の説明をしますね。
【送料無料】使える売買システム判別法 |