[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 466

 
Cmu4:

いいえ...ご指摘の通りやってみましたが、同じことが繰り返されます。

また、条件によってオープニングとクロージングのブロックに分けるなどして、コードを変更しました。全部同じです。これからどうしたらいいのかわからない。

テスターのスクリーンショットです。テスター用のEAはトレーラーにあります。


こんな感じで、オープンポジションの制御で行けるはずです。
ファイル:
 
Vinin:

オープンポジションを制御する、こんな感じでしょうか。


また、この方向で考えてみました。しかし、私はエラーそのものに興味があるのです。どこにあるんだ?

p.s. コードへの追加ありがとうございます!コンパイルすると、Closeall関数で、order_typeが 未定義であることが問題になります。

 
Cmu4:


また、この方向で考えてみました。でも、エラーそのものに興味があるんです。どこにあるんだ?

p.s. コードへの追加ありがとうございます!コンパイルすると、Closeall関数でundefined order_typeの悪態をつく。


void Closeall(int OP=-1)
{
   for (int i=OrdersTotal()-1; i>=0; i--) 
   { 
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
      { 
         if(OrderSymbol()==Symbol())
         { 
            if (OrderType()==OP || OP=-1) 
            {
               if(OrderType()==OP_BUY)
                  OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
               else if(OrderType()==OP_SELL)
                  OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
            }
         } 
      }
   }
}
 
Cmu4:

いいえ...ご指摘の通りやってみましたが、同じことが繰り返されます。

また、条件によってオープニングとクロージングのブロックに分けるなどして、コードを変更しました。全部同じです。これからどうしたらいいのかわからない。

これはテスターのスクリーンショットで、Expert Advisorはトレーラーにあります。

知りたいのは、このようにポジションが連続して開設されているかということです。 買い、売り、買い、売りなど、または連続したもの、例えば買いなど。

買いポジションと売りポジションが連続して開いているのでは?

理由は、比較されるMACDが非常に近く、すぐに場所が変わる(大きいのが小さい)ためです。したがって、まず一方の条件を満たし、次に他方の条件を満たすことになります。

解決策

if (MA1-MA2 > 0.0001 &&  MA2-MA3 > 0.0001 && Napr==1) //или другая константа
 
extralifes:

動作しない場合はスルーしてください。

iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7) なら売り注文だけを出すという条件(d_mn_1>d_pl1 && (d_mn_0-d_pl_0)>=2 )さえ合っていればいいのだそうです。

それは逆も同じです。

whileやboolで書けますか?プログラミングで完全なパンク状態です。論理的な連鎖は理解できても、それをコードで実行するのは手が遅い。


だから問題ないんだ...すべてうまくいくはずなんだ...もし...そのように動作します - (あなたの同じwhile ) 条件 (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 - が満たされる限り、そしてRSI (NULL,0,rsi_period,PRICE_CLOSE,2)>0 の限り。7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7), then we open only profit...。

これらの条件がすべて満たされれば、買いまたは売りの注文を出すことは明らかなのに、なぜフラグを処理しなければならないのでしょうか?

total=OrdersTotal();
if(total<1)

{

  if (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 &&  iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
        OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
   

  if (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0) > 0.3) 
       OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);

  }

今一度、よく見てください。

コードの他の場所でエラーを探す。ifで動作しない」と書かれていますが、もう少し詳しく説明してください。"ログ "にはどのように書かれているのでしょうか?

 
ikatsko:

こんにちは!StopOutを打ちたくない(打つこともある)です。ロットは、最悪の状態でもStopOutが「引っかからない」ような値に限定することにしたんだ。長い間、試行錯誤を繰り返しながら。どなたか解決策をお持ちではないでしょうか?

初期データです。

- 通貨ペア - EURUSDとは限りません。

- 値

- ポイント単位で指定されたStopLoss(最悪StopLossレベルに達してもStopOutを捕捉しないことを想定)

- 指定ロット値

- その他の数値は、MT4 の機能を利用して入力してください:1 ロットサイズ、レバレッジ、クロスレート。

できればコードでお願いします。

理論的には、残高からStopLossレベルの可能性のある損失を証拠金で割ったものが必要であることは理解しています。そして、この値はStopOutよりも大きくなければなりません(パーセンテージで)。

こんな感じ

int level=AccountStopoutLevel(); ///// ТОЛЬКО ЕСЛИ ВЫРАЖЕН В ПРОЦЕНТАХ!!!
if (AccountStopoutMode==0)
  {
   double Marga = NormalizeDouble(MarketInfo("EURUSD", MODE_MARGINREQUIRED), 2);
   double TickValue = NormalizeDouble(MarketInfo("EURUSD", MODE_TICKVALUE), 2);
   int SL = 26;////Пунктов
   double lotsShortNaVSE = NormalizeDouble(AccountBalance() / (level * Marga / 100.0 + SL * TickValue ), 2);
  }

を上回ってはならない ロット数ShortNaVSE

SL ---- は、開いたポジションに対して起こりうる損失です。

そして、証券会社には、起こりうる損失に対する独自の認識があります。

そのため、お客様または証券会社からマキシマムナンバーを取得する必要があるのです。例えば、EURUSDペアの ディーラーセンターでは、現時点ではSL = 26の損失が発生する可能性があります。

SL = MathMax(VashSLvPunktah, SLvPunktahUVashegoDillinga);
他に選択肢はないのでしょうか?
 
rlx:


そして、証券会社にも、想定される損失について独自の見解がある。

だからこそ、自分や証券会社の損得勘定は最大で取るべきなのです。例えば、現時点では証券会社がEURUSDの損失可能性をSL=26としています。

もしかしたら、他にもバリエーションがあるかもしれませんね。


それは、このDCの見え方をどう計算するかということに他なりません。

しかし、これは短期トレーダーにとってより重要なことです。

 

I.e.例えば、stopLossが5ポイントであれば、当然オープンロットの数は多く計算されます。

しかし、証券会社には独自のリスクマネジメントシステムがあるため、そのようなポジションを開設してもうまくいかない。

 
rlx:


ただ、このDCの見方をどう計算するかがポイントです。

しかし、これは短期滞在者にとってはより重要なことです。


ごきげんよう。よろしくお願いします。手動取引 中にストップとプロフィットを自動的に設定するスクリプトが必要です。可能だと思いますか?また、もし存在するならばリンクを教えてください。
 
Cmu4:

いいえ...ご指摘の通りやってみましたが、同じことが繰り返されます。

また、条件によってオープニングとクロージングのブロックに分けるなどして、コードを変更しました。全部同じです。これからどうしたらいいのかわからない。

テスターのスクリーンショットです。テスター用のEAはトレーラーにあります。

MAKDakの条件を満たす限り、注文も各ティックで一括してオープンされます。

条件を追加する
買いポジションの場合:もし成行買い注文がなければ、それを開く...
売りポジションの場合:成行売り注文がない場合、それを開く...

そして、問題は解決されるのです。