どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 372

 
Ekburg:

だからどうした! 効くのか?)


まあね自分で確認することができます=) 700ドル以上の金額を設定してテストしてください=)5分間隔

また、改造して毎晩勝手に起動するようにすることも可能です =)。

 
SpikeOne:


まあね自分で確認することができます=) 700ドル以上の金額を設定してテストしてください=)5分間隔

また、改造して毎晩勝手に起動するようにすることも可能です=)


そうですか)))では、儲かる高台を制覇するために頑張ってください))
 

こんにちは。

この方法で試した場合、前のバーの値をTakeProfitとして注文が入るのですが、それが見つからないのです.........。いろいろ試してみたのですが、オーダーは変数を見ずにスキップしてしまいます...その結果、TPは0か1か2に設定されてしまいます......。

頭に浮かんだことをすべてやってみたが、うまくいかない......。TP =」を「Print」に置き換えると、すべて書き込まれるのですが...。初心者を助けてください...。とてもありがたいことです。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue)を実行。

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP = ((High[i]-Low[i])*3)とする。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue)を実行。

____________________________________________________________________________________________

 
PaMyC:

こんにちは。

この方法で試した場合、前のバーの値をTakeProfitとして注文が入るのですが、それが見つからないのです.........。両方の方法を試しましたが、注文は変数を見ずにスキップしてしまいます...その結果、TPは0か1か2に設定されます...

頭に浮かんだことをすべてやってみたが、うまくいかない......。 TP =」を「Print」に置き換えると、すべて書き込まれるのですが・・・。 初心者を助けてください...。とてもありがたいことです。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue)を実行。

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP = ((High[i]-Low[i])*3)とする。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue)を実行。

____________________________________________________________________________________________



OrderSend() のthpはポイント数ではなく、注文が成立する価格であり、thpを設定する際には凍結レベルについて覚えておく必要があります(各DTZには問題があります)

は役に立つかもしれません。Artemさん、ありがとうございます。

artmedia70 15.12.2013 22:34 #

また、StopLevelも未計算のものがあります。知らないでいると、0になった後、別の計算をされることがあります。例えばアルパリでは、常にゼロですが、限界があり、スプレッドとしてカウントされます*2。

そこで、まずStopLevelを定義します。

グローバルに

int level=0, sp=0;

そして、start() で :

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

そして、すでにストップオーダーのサイズと受信レベルを比較し、計算されたストップオーダーの正しい値を使用します。

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

私もコードに項目があるだけでなく、価格値もありましたから...。

コードの内容は理解できたのですが、どうすればいいのでしょうか...?

 
PaMyC:

私もコードに項目があるだけでなく、価格値もありましたから...。

コードに書かれていることは理解できたのですが、どうすればいいのでしょうか......?


説き明かす

を与えた。

Low=1.3674

High=1.3811

Ask=1.3734

あなたの計算です。

Ask +((High[1]-Low[1])*3)*ポイント = 1.3734+((1.3811-1.3674)*3)*Point = 1.3734+(0.0137*3)*Point = 1.3734+(0.0411)*Point = 1.3734+411 = 412.3734 -私には良い相場とは思えないが...。)

ポイントによる乗算を削除するだけで、それだけでOK)

 
PaMyC:

私もコードに項目があるだけでなく、価格値もありましたから...。

コードの内容は理解できたのですが、どうすればいいのでしょうか...?


TRは普通に印刷できるのに、発注するときに点数をかけて全部ぐちゃぐちゃに...。
 
PaMyC:

私もコードに項目があるだけでなく、価格値もありましたから...。

コードの内容は理解できたのですが、どうすればいいのでしょうか...?


あるいは、大きな数字ではなく、とても小さな数字だから、TPを0や1に設定したのかもしれません。
 
vadynik:
仮想末尾を作る方法、OrderModify() を置き換える方法を教えてください。


ロボット用のトレイリング付きブロックを持っています。通常のものと、私独自のもの(ニュースの動き用)の両方です。

送ることもできますが、それはあなた次第です)。

 
Ekburg:

普通に印刷しても、注文するときに、またポイントを掛けてしまって、全部台無しになる...。


ありがとうございます。)

やはり、誤差はとても小さいが、とても厄介だ...。