[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 161

 
次の状況が発生しました:Strategy Testerが TakeProfitポジションを閉じない。取引はTFデイで行い、損切りの取引でTFを小さくして見ました。価格がTakeProfitを発動するのに必要なレベル以上に下がったり上がったりしても取引は成立せず、価格がStopLossに到達したら損失確定となります。私は可視化も試しましたが、価格はTakeProfitを通過するだけで終わりです。そして、すべてがうまくいくこともあれば、そういうものが現れることもある。ただ、昨日はすべて順調だったのですが、今日テスターを走らせたら、パフォーマンスが完全に落ちてしまったんです。ターミナルを再インストールしてみましたが、ダメでした。証券会社が違うのかよくわからない。
 
beginner666999:
次の状況が発生しました:Strategy TesterがTakeProfitによってポジションをクローズしない。取引はTFデイで行い、損切り取引のTFを小さくして見ました。TakeProfit発動に必要なレベル以上に価格が下がったり上がったりしても、取引は成立せず、価格がStopLossに達すると損失確定となります。私は可視化も試しましたが、価格はTakeProfitを通過するだけで終わりです。そして、すべてがうまくいくこともあれば、そういうものが現れることもあります。ただ、昨日はすべて順調だったのですが、今日テスターを走らせたら、まったく性能が出ませんでした。ターミナルを再インストールしてみましたが、ダメでした。違う証券会社を借りたので、よくわかりません。

普及のために、週末になると増えるんです。

こんな感じです。

 
r772ra:

普及のために、週末になると増えるんです。

こんな感じです。


ありがとうございます!(笑)。平日を待ってチェックすることにします。
 
r772ra:

普及のために、週末になると増えるんです。

こんな感じです。


ブローカーのウェブサイトで自分の商品のスプレッドを 見たら、11ピップスで驚きました!あなたはそんなバカでなければなりません。いつもありがとうございます。
 
それから、少し話がそれますが、もう一つ質問です。なぜ週末になるとスプレッドが広がるのか?結局のところ、とにかく取引が成立していないのです。
 
Konstebl:

買い注文がある場合、それがブレークイーブンであれば、BUYSTOPを設定するのですが、正しい条件の指定方法を教えてください。

static bool flag ;

if(NewBar())

flag = true とする。

for(i=0;i<total;i++)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==123)

{

if(OrderType()==OP_BUY)

{

if(OrderStopLoss()>OrderOpenPrice())の場合。

{

if(Ask>m && frUP>0 && flag)

{

価格 = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);

takeprofit = NormalizeDouble(price+tp*Point,Digits)です。

ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit, "Fractal",123,TimeCurrent() +72000,Blue)を実行。

if(チケット>0)

flag = false とする。

さもなくば

Print("エラー",GetLastError());

}

}

}

}

}

は機能しません!!!


論理にしたがって中括弧をつけるようにしましたか?今のところ無いから。

この文章は、少なくとも1つのポジションが空いていることを意味します。そうでなければ、新しいものを開くことはできません。

 
Vinin:


論理にしたがって中括弧をつけるようにしましたか?今のところ無いから。

この文章は、少なくとも1つのポジションが空いていることを意味しています。そうでなければ、新しいものは開かれない


そして、それらをどのようにアレンジするのか? もう少しコードを書いてみました。

 if(NewBar())

     flag = true;    

          for(i=0;i<total;i++)

             {

             OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 

             if(OrderSymbol()==Symbol() && OrderMagicNumber()==123)

                {

                if(OrderType()==OP_BUY || OrderType()<=OP_BUYSTOP)

                   {

                   if(OrderStopLoss()>OrderOpenPrice())

                      {

                      if(Ask>m && frUP>0 && flag)

                         {                

                        price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);

                        takeprofit = NormalizeDouble(price+tp*Point,Digits);

                        ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit,"Fractal",123,TimeCurrent()+72000,Blue);

                       if(ticket>0)

                        flag = false;

                       else

                        Print("Ошибка ",GetLastError());

                      }

                   }

                }

             }

          }
По идее должно работать,но не хочет.
 
beginner666999:
それから、少し話がそれますが、もう一つ質問です。なぜ、週末になるとスプレッドが広がるのか?とにかく取引しない。

いいえ、週末ではなく、私はそれを正しく書いていなかった、スプレッドは、最後に来た引用符で端末にとどまる

日中の金曜日はターミナルを閉鎖 しているんですね。そして、週末にテストするのです。

 
r772ra:

いいえ、週末ではなく、私はそれを正しく書いていなかった、スプレッドは、最後に来た引用符で端末にとどまります

日中の金曜日はターミナルを閉鎖しているんですね。そして、週末にテストするのです。


了解です、ありがとうございますその方がずっと理にかなっています。
 
Konstebl:


そして、どのように並べればいいのか? ちょっとだけコードを追加してみました。


OK、ちょっとだけロジック

if(NewBar())
    flag = true;    
for(i=0;i<total;i++) {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==123) {
    if(OrderType()==OP_BUY || OrderType()<=OP_BUYSTOP) {
        if(OrderStopLoss()>OrderOpenPrice()) {
            if(Ask>m && frUP>0 && flag) {                
                price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);
                takeprofit = NormalizeDouble(price+tp*Point,Digits);
                ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit,"Fractal",123,TimeCurrent()+72000,Blue);
                if(ticket>0)
                    flag = false;
                else
                    Print("Ошибка ",GetLastError());
            }
        }
    }
}

          }

条件に関係なくループが実行される if(NewBar())