[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 757

 
artmedia70:
すべてのオープンポジションの利益の合計が欲しいのか、それともそれぞれのポジションが20pipsの利益に達したときにストップをかけたいのか?
もし、一度に一つのポジションしか建てないと考えるなら、その利益を利用して、ストップを置くべきでしょう
 

こんにちは。アービトラージ戦略があるが、完璧なのか?つまり、それで負けるのは非現実的なのか、それとも価格が適切なレベルに達しないことがあるのか。

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

 
利益が20pipsに達した時点で各ストップについて
 

また間違えちゃったよ :(

なぜ比較しないのか?

if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(230),10,"Wingdings",SymbolSellColor);
      Print("Ошибка при вызове sig_nal201 1:",GetLastError());}
   else if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(228),10,"Wingdings",SymbolBuyColor);
      Print("Ошибка при вызове sig_nal201 2:",GetLastError());}
   else {ObjectSetText("sig_nal201",CharToStr(224),10,"Wingdings",SymbolBasisColor);
      Print("Ошибка при вызове sig_nal201 3:",GetLastError());}
コメントアウトして、2つの値を比較すると、常に最後の1つが描画 されます。
 
profitinvesting:
それぞれ、20pipsの利益が出たときに、独自のストップを置くように

Igor Kimは、指定したpips数(設定も可能)のブレークイーブンレベルでストップを設定する機能を備えています。

関数 MovingInWL()

 
Abzasc:

また間違えちゃったよ :(

なぜ比較しないのか?

不要なものをコメントアウトして、2つの値を比較しています - 常に最後の1つが描画 されます...

面白い...ObjectFind(); このオブジェクトが見つかったチャートサブウインドウの番号を返します。

指定された名前のオブジェクトを検索する。この関数は、オブジェクトが属しているウィンドウのインデックスを返します。失敗した場合は、-1を返します。エラーの詳細情報を得るには、GetLastError() 関数を呼び出します。チャートサブウィンドウ(チャート内にインジケータサブウィンドウがある場合)には、1から順に番号が振られます。メインチャートサブウインドウは常に存在し、インデックス0を持ちます。

また、何と比較しているのでしょうか?

(NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))

この構成はちょっとおかしいと思うんです。なぜサブウィンドウの番号(int)は、さらに、ダブルに 変換し、StrToDouble()関数によって正規化?

 
Abzasc:

なぜ比較しないのか?

値ではなく、オブジェクトの名前を取得しているからでしょうか?では、どうすれば正しく値を取得できるのでしょうか?混乱しているようだ。
 
artmedia70:

面白いですねぇ...。ObjectFind(); チャートサブウインドウの番号を返します。

:) 私もヘルプを読んでいました :)

テキストオブジェクトがあるので、それを比較したい(数字)。どうやって?

一方の指標は表を描き、もう一方はそれを計算する必要がある。

 
Abzasc:
値ではなく、オブジェクトの名前を取得しているからでしょうか?では、どうすれば正しく値を取得できるのでしょうか?混乱しているようです。
オブジェクトが描画されるサブウィンドウの番号を比較しているのです。もし、1つの中にあれば、関数ObjectFind();はそのウィンドウの番号を返し、それは比較される2つの値で同じになります。したがって、ウィンドウズ・ナンバーを比較することになります。そして、ほとんどの場合、自分自身と同じウィンドウを持つ...
 
Abzasc:

:) 私もヘルプを読んでいました :)

テキストオブジェクトがあるので、それを比較したい(数字)。どうやって?

何の数字?もう少し具体的に教えてください。
理由: