エキスパートアドバイザー - 雑多な質問 - ページ 35

 

#sparam - オープン

私のメインコードで、この異なる" sparam "メソッドをキャッチしました。
今、私はそれらのメソッドのいずれかを選択しようとしますが、私はmql4のドキュメントでそれについて調べたことさえ、それらのうちの1つを選択するのに苦労しています。

Q: どの方法が正しいか、その理由を教えてください。

ありがとうございました。

// # 1
if(sparam==button)
{
  // here code
}

// # 2
if(id==CHARTEVENT_OBJECT_CLICK && sparam==button)
{
  // here code
}

// # 3 ( was 2 I just forgot to change )
if(id==CHARTEVENT_OBJECT_CLICK)
{
  if(sparam==button)
    {
     // here code
    }
}
 

#1は通常クリックイベント内に配置されるため、#2と同じになります。

 
#sparam - 終了しました。

Marco vd Heijden:

#1は通常クリックイベントの内側に配置されるので、#2と同じになります。 また、他の#2と同じになります。

どうもありがとうございました。

 

#注文オブジェクトの削除 / OnTrade() - Open

最近2時間ほどOnTrade()関数の調査に時間を費やしましたが、ついにその関数がMT4で動作しないことがわかりました。(誰か言ってください: 動くというのは間違いです)

つまり、価格はストップロスやテイクプロフィットのレベルに、通常通り(私が正しければ)各ティック、各秒、各分でヒットしないのです。
その場合、#Ticketオブジェクトは削除される可能性があります。
OnTimer()やOnTick()に" My_OrderObjectsDelete() "を入れればいいのは分かっているのですが、OnTrade()のような関数がないかと探してみています。

My_OrderObjectsDelete() " をどこに置けばいいのか、アドバイスが必要です。

よろしくお願いします。

 
何をお望みなのか、ちょっと理解しにくいのですが。

mt4では、オープンオーダーがSTPやTGTにヒットした場合、オーダーヒストリーでそれを見つけることができます。ですから、OrdersTotal() でそれ以上見つからない場合は、 OrdersHistoryTotal()のリストをチェック します。

しかし、STPとTGTを再びBidとAskで追跡し、InTick()やOnTimer()のどこに置いたかに関係なく、これらのチェックが成功した場合のみOrderをチェック するとどうでしょう。
 
Carl Schreiber:
何をお望みなのか、ちょっと理解できません。
mt4では、オープンオーダーがSTPやTGTにヒットした場合、オーダーヒストリーの中でそれを見つけることができます。ですから、OrdersTotal() でそれ以上見つからない場合は、 OrdersHistoryTotal()のリストをチェックしてください。
しかし、STPとTGTを再びBidとAskで追跡し、InTick()やOnTimer()のどこに置いたかに関係なく、これらのチェックが成功した場合にのみOrderをチェックするとどうでしょう。

私はあなたが私を正しく理解していると思います。

なぜなら、プライス・インジケータは、ストップ・ロスやテイク・プロフィット・レベルをティックごとにヒットしてはならないからです。

( オーダー終了後にそのオブジェクトを削除する方法は既に知っています - このコメントも確認してください - 関数名は " deleteobjs() " -#238)

 

#Delete Order Objects / OnTrade() - 終了しました。

OnTick()またはOnTimer()のいずれかに私の関数を 配置します。

 

#StringLen - オープン

私はまだこの懸念について研究する - しかし、私は任意の類似のフォーラム - と何か他のことができません。

私は桁数をカウントしようとします。以下のコードは私に別の結果を与え、私を助けてください。

Bid_Len = StringLen( IntegerToString( change_to_points( Bid ) ) );

// Results
// EURUSD = 1.23456 > 123456
// NZDUSD = 0.12345 > 12345
事前にありがとうございます。
 
Max Enrik:

#StringLen - オープン

私はまだこの懸念について研究する - しかし、私は任意の類似のフォーラム - と何か他のことができません。

私は桁数をカウントしようとします。以下のコードは私に別の結果を与え、私を助けてください。

Bid_Len = StringLen( IntegerToString( change_to_points( Bid ) ) );

// Results
// EURUSD = 1.23456 > 123456
// NZDUSD = 0.12345 > 12345
事前にありがとうございます。
何をしようとしているのか、もっと詳しく説明してください。
 
honest_knave:
ここで何をしようとしているのか、もっと説明してください。

早速のご回答ありがとうございます。

下の画像は、私がやりたいことです。

文字列Len-1

(ただ、さっと作っただけです)

私はあなたがより明確に私を理解するのに役立つことを願っています。

// 2回目の編集

私はこれがより多くの助けになることを願っています。

文字列Len - 説明 - 1