結論から言うと、もう少し複雑なんです。このExpert Advisorは、矢印が2つのインジケータ配列(インジケータバッファ)に割り当てられているインジケータで動作します。私のインジケータでは、オブジェクト(矢印)はObjectCreate()メソッドで作成されています。私が理解する限り、オブジェクト(矢印)は時間-価格座標に従って作成されます。Expert Advisorは、インジケーターの計算式を関数で使う、いわば、同じ条件で矢印の代わりにポジションが開くというのが一番簡単な作り方だと思うのですが。How to be?助けて
助けて助けてください -カスタムインジケーターが あり、特に売買の矢印を描画します。それを元にEAを作るにはどうしたらいいのか?EAから描かれた矢印かどうかを判断しやすくするには?それとも、Expert Advisorの機能としてインジケータのコードが作られているのでしょうか?MQLを使いこなしている。そこでは、私の疑問に対する答えは見つかっていません。
とても興味があります。
助けて助けてください - カスタムインジケーターがあり、特に売買の矢印を描画します。それを元にEAを作るにはどうしたらいいのか?EAから描かれた矢印かどうかを判断しやすくするには?それとも、Expert Advisorの機能としてインジケータのコードが作られているのでしょうか?MQLを使いこなしている。 そこでは、私の疑問に対する答えは見つかっていません。
助けてください。
https://www.mql5.com/ru/code/8524
素晴らしい!レディメイドのアドバイザーですね。調べてみます!ありがとうございました。
試行錯誤の結果、ログにはどのように書かれていますか?
うんともすんともいわない
https://www.mql5.com/ru/code/8524
結論から言うと、もう少し複雑なんです。このExpert Advisorは、矢印が2つのインジケータ配列(インジケータバッファ)に割り当てられているインジケータで動作します。私のインジケータでは、オブジェクト(矢印)はObjectCreate()メソッドで作成されています。私が理解する限り、オブジェクト(矢印)は時間-価格座標に従って作成されます。Expert Advisorは、インジケーターの計算式を関数で使う、いわば、同じ条件で矢印の代わりにポジションが開くというのが一番簡単な作り方だと思うのですが。How to be?助けて
結論から言うと、もう少し複雑なんです。このExpert Advisorは、矢印が2つのインジケータ配列(インジケータバッファ)に割り当てられているインジケータで動作します。私のインジケータでは、オブジェクト(矢印)はObjectCreate()メソッドで作成されています。この場合、どうしたらいいのでしょうか?助けて
インジケーターのコードをExpert Advisorに移動するだけです。そこでは、Buy 矢印の ObjectCreate() コマンドの代わりに、Buy ディールを開く。Sellも同様です。
ありがとうございました。やりますよ。難しいことは何もないと思います。
こんにちは
助けてください。結論から言うとEAは売りと決済だけで、1つの注文で動作します。ストキャスティクスが80を超えると損失が出るので、KimA さんのisCloseLastPosByStop 関数でストップロスでポジションが閉じていたら売るという条件に変更することを思いつきました。つまり、最後のポジションがストップロスで決済された場合は真 、そうでない場合は偽と なり、これらの条件が売り条件として入力されたことになります。接続すると、1つのポジションが開かれ、ストップロスで閉じられるか、まったく閉じられなくなります。コードのどこがおかしいのか、どうすればこのようになるのか、教えてください。
i
int start()
{
イント
cnt=0とする。
のチケットを購入します。
の合計です。
二重
StochK_0, // K線値
StochD_1, // D線の値
SL=StopLoss。
ブール
isCloseLastPosByStop(NULL,OP_SELL, MagicNamber); // 関数 KimA
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D
ticket= OrderTicket()。
total=OrdersTotal()。
if (total<1)
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 0)
{
if ( (StochK_0<StochD_1) && (StochD_1 > 80) // 1st ist sale
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); // 売ります。
OrderSelect(0, SELECT_BY_POS);
if (OrderSelect(0, SELECT_BY_POS)==true )
Print("SELECT_BY_POS")。
さもなくば
Print("failed to select error : ",GetLastError());
if((StochK_0<30)&& (StochD_1 < 30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet)を実行します。
}
さもなくば
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 1)
{
if ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60))2nd asses sale
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*0,0, "My EXP", MagicNamber,0,Green)); //
OrderSelect(0, SELECT_BY_POS);
if (OrderSelect(0, SELECT_BY_POS)==true )
Print("SELECT_BY_POS")。
さもなくば
Print("failed to select2 error : ",GetLastError());
if((StochK_0<30)&& (StochD_1 < 30)) // クローズ条件
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet)を実行します。
}
return(0)です。
}
//___ fu ______ isCloseLastPosByStop(NULL,OP_SELL, MagicNamber)______ 。
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {.
........................................................................................................