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

 
webip:
みんな、助けてください。もう5日目ですが、解りません。私のEAでは、必要な基準を満たすとストップロス注文を修正するようにしています。そしてストップロスは、最後に閉じた注文の利益を取るように設定する必要があります。しかし、修正が始まると、ロボットは常にストップロスを1.0000に設定します。何が悪いのか理解できない。もう、頭を悩ませています。 どなたか、前の注文の利食いと今の注文の損切りを行う方法をご存じない でしょうか?

まあ...は、double 型にしたいのに、int 型の変数に格納しているように見えます。

現在の注文のテイクは、必ずしも前の注文のストップロスに設定されるとは限りません。置いてはいけない場所に置かれている可能性があります。

 
artmedia70:

まあ...本来はdouble 型に格納すべきところをint 型の変数に格納しているように見えます。

また、必ずしも前作の停止位置に今作のテイクを配置できるとは限りませんし...。置いてはいけない場所に置かれている可能性があります。


が、どこに置くかです。私も最初は間違ったタイプで暗記しているのかと思いましたが、確認したら大丈夫でした。
 
webip:
が、どこに置くかです。私も最初は間違ったタイプで暗記しているのかと思いましたが、確認したら大丈夫でした。

double 変数に格納します。ほとんどの場合、int 変数に価格を格納するので、端数部分が 切り捨てられます。
 
artmedia70:
double 変数に格納する。ほとんどの場合、int 変数に価格を格納するので、端数部分が切り捨てられる。 。


もう一度確認した。何もわからなかったが、すべての変数がその場所にある。唯一の問題は、注文を変更するための基準がトリガーされたときに、Strategy Testerの チャートが単にフリーズしてしまうことです。どうしたらいいのでしょうか?倍で 全部覚えたと思います。
 
webip:

もう一度確認した。私は何も理解していませんが、すべての変数が所定の位置にあります。唯一の問題は、注文を変更するための基準がトリガーされたとき、Strategy Testerのチャートが単にフリーズ することです。どうしたらいいのでしょうか?倍で全部覚えたと思います

キッチンの冷蔵庫の鍵をかけ忘れました :)

まあ、素で他に何が言えるんだろう。

こんな感じ?それとも、double 型の 変数に価格を格納しているのでしょうか?

 
artmedia70:

キッチンの冷蔵庫に鍵をかけるのを忘れていた :)

まあ、素で他に何が言えるんだろう。



いいえ、冷蔵庫は閉まっています。:))

何が問題なのかわからない。変数はすべて正しく行っています。ここからは、それが修正される部分です。何が問題なのか理解できるかもしれません。

int modify_2(int tip)
 {

 int ticket;  //номер ордера
 double 
 price,   //Цена открытия
 tp;     //Новое значение цены
 double ts;
 bool modify=false;
 double take;
 
  for(int n=1;n<=OrdersTotal();n++)
   {
    ticket=mas_ord[n][1];
    if(mas_ord[n][4]!=tip)
     continue;
    price=mas_ord[n][6];
    tp=mas_ord[n][2];                          
    
    switch(tip)
     {

      case 0:
     OrderSelect(1,SELECT_BY_POS,MODE_HISTORY);
      take=OrderTakeProfit();
       ts=take;
       modify=true;
       break;
      
      case 1:
       ts=Ask+Level_sell_138*Point;
       modify=true;        
     } 
    //--------------
    if(modify==false)
     continue;
    
    bool ans=OrderModify(ticket,price,ts,tp,0);
    
    if(ans==false)
     { 
      n--;
     }
     else ord_2=true;
   }
   return;
 }
 
webip:


いいえ、冷蔵庫は閉まっています。:))

何が問題なのかわからない。変数はすべて正しく行っています。こちらが、改造が施された作品です。何が問題なのかが分かるかもしれません。

これって教科書か何かに書いてあったんですか?

for(int n=1;n<=OrdersTotal();n++)

このように注文を通す必要があります。

for(int n=0;n<OrdersTotal();n++)

したがって、残りのアレイは浮いてしまう...。

最後に閉じた注文を探すには、明示的に1を指定するのではなく、履歴を検索するようにします。

そうして、そうして.これ以上調べられません。第一に、コードの整合性がなければ役に立ちそうにありませんし、第二に、朝の7時でまだ寝てもいないのに......。

 
webip:


いいえ、冷蔵庫は閉まっています。:))

何が問題なのかわからない。変数はすべて正しく行っています。こちらが、改造が施された作品です。何が問題なのかが分かるかもしれません。

倍返しだ!問題解決に役立つかもしれません。
 
artmedia70:

これは教科書に載っているものですか?

このようにオーダーをオーバーランさせるのです。

したがって、残りのアレイは浮いてしまう...。

最後に閉じた注文を検索するには、明示的に1を指定するのではなく、履歴を検索しようとします。

などなど・・・。これ以上検索することはできません。第一に、コードの整合性がなければほとんど役に立ちませんし、第二に、朝の7時でまだ寝てもいないのに......です。



また、このオーバーシュートでも問題なく動作しました。そして、その最後のクローズド・オーダーは、プログラムがうまく機能するかどうかを調べるために直接指したのです(そして、それはクソのように機能します)。また、テスターでテストしているため(気になる注文が先に開くことがわかっている)、私のコードはとても長いので、ここにコピーすることはできません:)
 
webip:


いいえ、冷蔵庫は閉まっています。:))

何が問題なのかわからない。変数はすべて正しく行っています。こちらが、改造が施された作品です。何が問題なのかが分かるかもしれません。

配列

mas_ord

どのようなタイプがあるのでしょうか?

価格、TP、TAKE変数とはどのようなものですか?なぜ、ここで推測しなければならないのか?

理由: