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

 
Roger:


機能そのものを表示する。

void ClosePartPosBySelect(double Part)の場合、以下のように変更します。

void ClosePartPosBySelect()

しかし、この関数にパラメータを渡すにはどうしたらよいのでしょうか。仮に:
if (x==2 && y==4) Part=0.5;
else Part=2;

ClosePartPosBySelect(Part);

KimのClosePosBySelect()関数が、double型の 渡されたパラメータを必要とするように変更され、Part変数である

 
keekkenen:

りょうよう

1.値を変更する関数内で、アンパサンドを追加する。

例)void function( double& Part){}。

を呼び出すと,関数内の値が変更されたときに,新しい値が呼び出した場所に戻ってきます.

2. 関数のパラメータリストから変数を削除する。変数はグローバルに定義されているので、パラメータとして渡さずにコードのどの場所でもその値を変更することができる...

グローバルに宣言された変数が1つ以上(しかも1つの関数内)存在する可能性があるので、最初の変形が良いのですが...。


投稿をちらっと見たのですが、実はすでに答えが出ているような...。

ありがとう、試してみるよ...。
 
zelek:

プロフェッショナルの皆様、こんにちは。

売りと買いの2つの注文を同時に出すEAをぜひ作りたいのですが。

そして、一定のポイント(パラメータlim)が経過すると、負け注文がクローズされることになる。

注文が開始されてからの最大価格を下回ると、利益のあるものがクローズされます。

(一種の仮想トレーリングストップ)。

苦し紛れに作成したのですが、うまくいきません...。はたらかない

何かご提案ください

プルバックなのかリバーサルなのか、どう判断するのでしょうか?それとも、プルバックするたびに2つのポジションを開くのでしょうか?バッサリです...。
 
artmedia70:
では、この関数にパラメータを渡すにはどうすればよいのでしょうか。


パラメータがグローバルに宣言されている場合は、パラメータを渡す必要はなく、直接目的の値を代入することができます。その場合のみ、関数内でオーバーライドする必要はありません。
 
面白いですねぇ...。

これが2009年の全貌だ...。エントリーにはMomentumの読み取りのみを使用します。
TF H1では、モメンタムの動きがブレイクする瞬間を探し、TF M5では、市場に参入する正確なタイミングを見つけます。ポジションを建てるときは、前のポジションの建玉時刻を確認し、エントリー信号の時刻に預金を全部開けないようにする...。
TF M5とM15の買われすぎ・売られすぎゾーンにDemarkerが位置していることから、相場に参入する時期が確認された...。
...ちなみに、ロックなしも好結果でした。

...また、Demarkerだけを使ったテストも、面白い結果が得られました。

どこかで見たような話ですね。

//---------------------------------------------------------
   MomML_0   =iMomentum(NULL,PERIOD_M5,14,PRICE_CLOSE,0);
   MomML_1   =iMomentum(NULL,PERIOD_M5,14,PRICE_CLOSE,1);
   MomML_2   =iMomentum(NULL,PERIOD_M5,14,PRICE_CLOSE,2);
   
   MomST_0  =iMomentum(NULL,PERIOD_H1,14,PRICE_CLOSE,0);
   MomST_1  =iMomentum(NULL,PERIOD_H1,14,PRICE_CLOSE,1);
   MomST_2  =iMomentum(NULL,PERIOD_H1,14,PRICE_CLOSE,2);
   
   DeM5     =iDeMarker(NULL,PERIOD_M5, 14,0);
   DeM15    =iDeMarker(NULL,PERIOD_M15,14,0);

//---------------------------------------------------------
//==============================================================================================
   // Поиск пересечений
//==============================================================================================  
//----------------------- Проверка условий для старшего ТФ --------------------    
// ---------- Покупка --------
   MomBuy56M15=false;
   if (
         MomST_0<100 && 
         MomST_1<100 && 
         MomST_2<100 &&
         MomST_0>MomST_1 &&
         MomST_1<MomST_2 &&
         DeM15<0.3
      )                                
         {   
            MomBuy56M15=true;
         }

// ---------- Продажа --------
   MomSell56M15=false;
   if (
         MomST_0>100 && 
         MomST_1>100 && 
         MomST_2>100 &&
         MomST_0<MomST_1 &&
         MomST_1>MomST_2 &&
         DeM15>0.7
      )                                
         {   
            MomSell56M15=true;
         }
//----------------------- Проверка условий для младшего ТФ ---------------------    
// ---------- Покупка --------
   MomBuy56M5=false;
   if (
         MomML_0<100 && 
         MomML_1<100 && 
         MomML_2<100 &&
         MomML_0>MomML_1 &&
         MomML_1<MomML_2 &&
         DeM5<0.3   
      )                                
         {   
            MomBuy56M5=true;
         }

// ---------- Продажа --------
   MomSell56M5=false;
   if (
         MomML_0>100 && 
         MomML_1>100 && 
         MomML_2>100 &&
         MomML_0<MomML_1 &&
         MomML_1>MomML_2 &&
         DeM5>0.7   // ... и тут ...
      )                                
         {   
            MomSell56M5=true;
         }      

//==============================================================================================
   // Вычисление основных торговых критериев
//====================================================================  
   if (
         MomBuy56M15==true &&
         MomBuy56M5 ==true
      )
      
      return(106);                       // Открытие Buy по стратегии 6 
 //====================================================================   
 
   if (
         MomSell56M15==true &&
         MomSell56M5 ==true
      )
      
      return(206);                       // Открытие Sell по стратегии 6 
 //====================================================================   

同じような結果なら、トレンドの枯渇(終了)の瞬間を示すのに適している(と言われている)モメンタムをなぜ使うのだろう?モメンタムがブレイクすると、価格は上昇し続け、新しいモメンタムのブレイクのたびにポジションが開かれた...。だから、ロックしようと思ったのは、初期のエントリーだったんです...。
それについてどう思いますか?

 

テスターでゼロバーを使うことはできません。それは、ゼロバーがまだ形成されていないにもかかわらず(テスターのティック)、テスターはこのバーの価格について完全な情報を持っているという単純な理由です。

また、現在のm5と古い価格が使用されている掛け合わせ期間だけを使用することも意味があります。14 *PERIOD_H1/ Period()および14 * PERIOD_M15 / Period()。

 
keekkenen:

テスターでゼロバーを使うことはできません。それは、ゼロバーがまだ形成されていないにもかかわらず(テスターのティック)、テスターはこのバーの価格について完全な情報を持っているという単純な理由です。

また、現行のm5のみを使用し、古い価格が使用されている期間を乗じることも意味があります。14 * PERIOD_H1 / Period()および14 * PERIOD_M15 / Period()。

テスターでゼロバーの終値を すべて印刷すると、すべてのティックで価格が異なるのはなぜですか?より高いタイムフレームでも同じ、視覚化しなくても同じ。では、ビジュアライゼーションはどこにあるのでしょうか?
 
まあ、ゼロバーと大差ない結果(ダイナミクス)であれば、覗くことはないのでしょうが、錯覚には注意したほうがいいでしょうね......。
 

すでに頭を悩ませています :)- が問題です。

EAは半自動モードで動作します - その入力はポジションからの私の出力です、しかし、私は把握することはできません - 次の1つのための私のコマンドの前に1つだけの取引を行うためにEAを作る方法、私はちょうどチャート上のスタート/スタートボタンを持っていない、すなわち:)。init()セクションが忙しく、EAを無効化できない - 正しいトローリングにはその計算が必要

 
keekkenen:
まあ、ゼロバーと大差ない結果(ダイナミクス)ならピーキングはないのでしょうが、錯覚は禁物ですからね......。
すべての幻想は幻想かもしれませんが、2008年の終わりには、すべてのトリガーリミットの大きな兄弟が、忠実にデポを追加し、インデックのシグナルを使って開いたポジションによって形成されたドローダウンに対処することができませんでした、そしてここに、待望のコリャおじさんからの電話です...:)

そんな悩みをどう解決するのか。


もしかしたら、そうした滑りを少なくする方法があるのでは?あなたの考えは?