MMA_Breakout_strategy_volume I (MMまたはMFなし)-WhooDoo22によってコード化された。 - ページ 3

 
別のバージョンに移る 前に、このスレッドの主題であるコードを修正してはどうでしょうか ... ... そうすれば、多くのことを学ぶことができるでしょう。
 
サイモン


もう一つのポイント.

私のコーディングの方法は、I/II巻のトレード能力と価値を確認するために、私ができる最速のパッチワークであることを強調する必要があります。私は、最初からすべてを「正しく」コーディングするために、人生の中で十分な時間を確保することはできません。私は通常、プロジェクトを段階的に開始します。例えばフェーズ1。すべての機能を網羅する、2.3.EAの外見的な美しさを追加する。現在、私はまだフェーズ1に取り組んでいます。このEAには、典型的な送信注文、決済注文のEAよりもはるかに多くのことが単純に含まれています。多くの時間と思考がこのテストに費やされています。このテストは、第1巻が完成した時点で合格となる予定です。

とはいえ、最初のOrderSend()関数で「ボールを転がす」ための別の選択肢を考えています。まだ方向性は定まっていません。最終的には、「if(OrdersHistoryTotal()==0){」という条件を、信頼できる条件に完全に置き換えるつもりです。ご指摘の通り、少し考えてみたいと思います。ご鞭撻のほど、よろしくお願いいたします。

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

 
RaptorUK:

変数とは何ですか それはあなたがそれにこれを行うときにチケット番号になることができますか?

現在、4つのライブトレードがありますが、チケット番号は連続したものではありません。

私はあなたが何を意味するのか知っていると思う、どのようにそれが可能である、+ +は良い質問です。
 
WhooDoo22:
サイモン


もう一点.

私のコーディング方法は、第Ⅰ巻/第Ⅱ巻のトレーディング能力と価値を確認するために、すべてをつなぎ合わせることができる最速の方法であることを強調することが重要です。私の人生には、最初からすべてを「正しく」コーディングするための十分な時間がないのです。

少なくとも、機能的に 正しく動作するようにしなければなりません。このままコードを書き続けて、STを実行したときに何GBものエラーが発生したり、LiveやDemoで機能しないコードがあってもいいんです。もしあなたが望むなら。
 

サイモン

少なくとも、あなたは...

RE:私はゴールに到達するまでの時間を気にせず、プロジェクトが 完了するまでただひたすら突き進みます。私の選択は、GB単位のエラーを出さないことです :)むしろ、コーディング仲間からの建設的な批評に耳を傾け、提示されたコーディング上の問題点に対する解決策を回答し、応酬することを望んでいます。これらの解決策は、Volume I/IIでより少ないエラーを生み出す可能性があります。

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

 
WhooDoo22:

サイモン

少なくとも、そうでなければ...。

RE:私は、目標に到達するまでの時間を気にせず、プロジェクトが完了するまで、ただひたすら前進するのみです。私の選択は、GB単位のエラーを出さないことです :)むしろ、コーディング仲間からの建設的な批評に耳を傾け、提示されたコーディング上の問題点に対する解決策を提示し、それに応えることを望んでいます。これらの解決策は、Volume I/IIでより少ないエラーを生み出す可能性があります。

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



RaptorUKがそこで与えたものは、建設的な批評であり、あなたのコードに対応する解決です
 

サイモン、ブール変数を使ってこの問題を解いてみるよ。このブール条件は、フェーズ2に到達するまでは、この問題を解決する一般的なソリューションです。その後、私のコーディングスタイルを反映して、最初の注文の送信信号に独自の条件を与えることができます。ご意見ありがとうございました。

 
WhooDoo22:

サイモン、ブール変数を使ってこの問題を解いてみるよ。このブール条件は、フェーズ2に到達するまでは、この問題を解決する一般的なソリューションです。その後、私のコーディングスタイルを反映して、最初の注文の送信信号に独自の条件を与えることができます。ご意見ありがとうございました。

あなたのコーディングは、あなたが理解していないことを表しており、あなたが理解していない場合は、それを修正することはできません。
 

サイモン 私は理解していると思うのですが、あなたは私が理解して いないと思うことは何ですか?

これまで、私たちは2つの重要な 事柄について議論してきました。

1.緊急時のSLコードブロックを修正する。

2. "if (OrdersHistoryTotal()==0{" という現在の条件を削除し、条件を別の条件に置き換える(私の現在の解決策は、現在の条件をブール値の条件に置き換えてオーダーエンドを開始することです)。

//example

if(x==false){OrderSend()...; x=true;}

/* now, x is true and the code block will not execute again. Of course, I would add code to save variables and if connection 
   is lost from the terminal server, all variables are saved. Simple.
   I understand the code is incorrect, but I wrote this for you to understand its concept, not a completely typed up code. */

この変数を保存するアイデアは、サーバーが切断された場合の一般的な解決策で、ubzenが提案したものです。このアイデアについては、彼の功績を認めます。

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

 
WhooDoo22:

サイモン、私は理解していると思うのですが、私が理解していないと思われる のはどういうことですか?

あなたのstart()関数の最初の行はこれです ... ...

   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);

...................どのチケット番号を選んでいるのでしょうか?チケットは初期変数設定なしで宣言されているので、0になり、あなたはすぐにチケット0を選択しようとしている、これはエラーが発生します。もしOrderSend()の正しい使い方を理解しているなら、なぜこのようなことをするのでしょうか?


OrderHistoryTotal() を理解していれば、このような使い方はしないでしょうし、「ユニークチケット変数の取引履歴のみを検索 する」とも言わないでしょう。

中括弧が どのように機能するかを理解していれば、不要な中括弧を追加することはなかったでしょう。それらは何も追加せず、コードをすっきりさせることも、読みやすくすることもありません。

if(OrderType()==OP_BUY)                                                                     
      {
         {
         OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue
         }
      }

は、「...」と置き換えることができます。

if(OrderType()==OP_BUY)  
   OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue);

チケット番号として変数iを 使用することは、Strategy Testerの 外、すなわちデモまたはライブ口座でチケット番号がどのように機能するかを理解していないことを示しています ... ...


取引関数が成功したか失敗したかをチェックしていません。あなたのコードでは、次のように使っているので、これは重要です。

ticket = OrderSend(Symbol(),OP_BUY,0.05,Ask,30,0,0,"",0,0,Blue);

... もしOrderSend()が失敗したらticket will = -1 そして、この変数を使用してチケット番号-1で注文しようとすると、あなたのコードでは明らかに失敗します .. .