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

 

一目均衡表のクロスは買いしか開かない!?

皆さん、こんにちは。

ここ数週間プログラミングをしていて、それなりにうまくいっています。しかし、私がコード化しようとしている最新のかなり単純なシステムが、私のために働かないというポイントにぶつかりました。私は5回ほど書き直し、異なるコードを使用し、Expert Advisorビルダーを試し、他のクロス戦略を変更するなどしましたが、システムは買い取引しか開きません。(私が持っている他の問題の中で) それは有益なシステムであるように思えるので、任意のヘルプは非常に感謝されます。(Ok誰もがそれらをプログラミングするときにこれを考えているようだが、手動でバーbyバーのバックテストは、肯定的な結果を示しています)。

システム:チャートのセットアップ

一目均衡表はデフォルトの9,26,52で設定。天底線と地底線のみを表示し、一目均衡表は非表示とする。

最初のエントリー(ロング/バイの説明、逆方向の売りも同様)

天底線が機順線と交差し、価格が機順線の上にあるとき。 天底線より下にあるペアのスプレッド分だけ損切りする。 機順線にストップを置いてトレール - 逆のシグナルが発生しない限り(ここでクローズ)スプレッドピップス。

再トライ("大きな乗り "をつかむ前に、いくつかのトレードがストップアウトすることもある

ストップロスをした後、天秤棒と機船棒が交差する前に、価格が天秤棒の上にあり、天秤棒が機船棒の上にある場合、ポジションを再開することができます。 ストップロスは前と同じです。

まとめ

天秤棒が機順線の上に来たらロングポジションを取り、損切りは機順線の下に置く。 クロスする前に損切りし、反転した場合、価格が天秤棒の上に上がればロングポジションを再取得できる。利益を取らず、損切りは機順線の上に置く。

このシステムはトレンドを好む傾向があるが、レンジ相場では損失はあまり大きくないはずだ。日足でトレードする予定ですが、Expertを稼働させたら他のものも可能です。実際、私がテストしたいくつかの市場では、EAが正しく動作する前に、現時点で利益を上げています。

もし、私がどこで間違っているのかを解読できる人がいれば、MQ4を添付します。

ありがとうございます。

ハワード

P.S. 私の誕生日が明日なので、この件に関して何か助けを頂けるととても嬉しいです。

また、一目均衡表は市場を取引するためのものなので、自動化すべきではないと感じている一目均衡表研究家の皆さんには申し訳なく思っています。しかし、私はこのインディケータがとても素晴らしく、特に多くの長いトレンドのリトレースメントのすぐ外側で取引される起点線は、自動化に最適だと感じています。

ファイル:
ikh_pro.mq4  5 kb
 
gmax111:
EMAのクロスを売買するEAを書いているのですが...私は買う前に最後の10バーの終値がEMAの上にあったかどうかをチェックすることによってそれをフィルタリングしたい...誰か私を助けることができますか?

bool OkToBuy()

{

for(int j = 1, j < 11, j ++) if(Close[j] < EMA) return(false);

return(true);

}

 
Michel:

bool OkToBuy()

{

for(int j = 1, j < 11, j ++) if(Close[j] < EMA) return(false);

return(true);

}

このMichelにとても感謝しています。

これは私を悩ませるものの一つでしたが、今は考えすぎて馬鹿にされたような気分です...ハハ...本当にありがとうございます。

 

How To Code!

このEaはとても良いと思うのですが・・・。

でも、1つのペアで1つしか注文ができない・・・なぜ?

 

アドリアへ

アドリア

あなたの問題に興味を持ち、遊んでみました。

以下のようなことが必要なようです。

まず、Var1, Var2 をグローバルに宣言します。

次に、これを試してみてください。

if (Hour() == 12) Var1 = iHigh(NULL,0,1);

if (Hour() == 12) Var2 = iLow(NULL,0,1)。

Metaeditor NavigatorにHour()の解説があります。

TSDで "trading hours "を検索すると、より多くの例を見ることができます。

もし、あなたのEAが有望なら、私にコピーを送っていただけますか?

ビッグベー

 

ビッグベーへ

似たようなEAを作りました。チャートの時間に合わせてTIMEの値を変更する必要があります。

チャートの時間に合わせて

ファイル:
 

この関数closealltradesのヘルプが必要です。

ブローカーが価格を再提示することがあり、EAが決済しないことがあることに気づきました。

注文を閉じません。 どうしたらEAがマジックナンバーに従った全ての注文がクローズされるまで続かないようにできますか?

そのマジックナンバーが閉じている、多分5秒のためのスリープ関数と 置く。

注文をチェックし、継続する前に閉じるためにループしている間。 以下は

closealltrades関数です。 助けていただき、ありがとうございます。

void CloseAllTrades()

{

int rc;

int cnt;

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

{

rc= OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

if(!rc)

Log("クローズエラー="+GetLastError());

}

}

}

 
hedge4x:
ブローカーが時々価格を再提示し、EAがクローズしないことに気づきました。

という注文があります。 どうすれば、マジックナンバーに従った注文がすべて終了するまでEAが継続しないようにできるでしょうか。

5秒間スリープさせ、継続する前に注文をチェックするため

whileループで注文をチェックし、決済してから継続します。 以下は

closealltrades関数です。 助けていただき、ありがとうございます。

void CloseAllTrades()

{

int rc;

int cnt;

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

{

rc= OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

if(!rc)

Log("クローズエラー="+GetLastError());

}

}

}

bool IsAllClosed ; //Global variable

void CloseAllTrades()

{

int cnt;

IsAllClosed = true;

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

IsAllClosed = IsAllClosed && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(!IsAllClosed) {CloseAllTrades(); return;}

...

 

サンクス

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

試してみます。

 

この行は while(!IsAllClosed) {CloseAllTrades(); return;} です。

MTがダウンした場合、メイン・スタートですべてのオープン・ポジションをクローズします。

して、再スタートさせます。 この行をclosealltrades関数に入れる方法はありますか?

をclosealltrades関数の 中に入れて、MT4再起動後にすべてのオープンポジションをクローズしないようにする方法はありますか?

この行をclosealltrades関数に追加して、MT4再起動後にすべてのオープンポジションを閉じないようにする方法はありますか?

ありがとうございます。