コーディングのヘルプ - ページ 658

 

mladen様

EAで最後に決済された注文の種類と 利益を出したかどうかを知りたい場合、以下の関数で対応可能でしょうか。

int OrdersProfit()
  {
   int Profit;
   for (int i=OrdersHistoryTotal(); i>=0; i--)
     {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
      if (OrderType()==OP_BUY  && OrderProfit()> 0) Profit ="1" ;
      if (OrderType()==OP_SELL && OrderProfit()> 0) Profit ="2" ;
     }    
   return(Profit);
  }


最高です。

 
IXI:

mladen様

EAで最後に決済された注文の種類と利益を出したかどうかを知りたい場合、以下の関数で可能でしょうか。


最高です。

いいえ、できません(単に、クローズした注文が終了時間順に並んでいないためで、少なくともマニュアルではそうなっています:注文が終了時間順に並んでいる保証はありません)。このようにしなければならないのです。

int OrdersProfit()
{
   int      profit    = 0;
   datetime CloseTime = 0;
       for(int i=OrdersHistoryTotal()-1;i>=0;i--)
       {
           if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
           if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
           {
              CloseTime = OrderCloseTime();
              if (OrderType()==OP_BUY  && OrderProfit()> 0) Profit =1 ;
              if (OrderType()==OP_SELL && OrderProfit()> 0) Profit =2 ;
           } 
       }
       return(Profit);
}  
 

mladen様

完璧な回答をありがとうございました。

最高です。

 

親愛なる友人たちへ

添付のインジケーターを最新ビルドのmt4用にアップデートしていただけませんか?

特に "123PatternsV6 " はmt4がフリーズして動きません。

ファイル:
 
oguz:

親愛なる友人たちへ

添付のインジケーターを最新ビルドのmt4用にアップデートしていただけませんか?

特に "123PatternsV6 " はmt4がフリーズして動きません。

123がフリーズしないようにするには、ジグザグのインジケータが 必要だと思います。
 
mntiwana:
123はターミナルをフリーズさせずに動作させるために、ジグザグインジケータが必要だと思います。

Zigzag インジケータはすでにmt4で利用可能です。

 
oguz:

Zigzagインジケータはmt4で既に利用可能です。

新しいZigzagは以前のバージョンのように動作しません。iCustom()コールからいくつかのパラメータを 使用した場合、ターミナルがハングアップしてしまいます。
 

こんにちは。

最近、自分のアイデアを事前にテストするためにコーディングできるように、経験を積むためにMQL4のプログラミングを始めました。

今、絵を描くタイミングに悩んでいます。

例えば、ストキャスティクスの if文があり、MAが価格の上か下に行くまで待ってから描画したいのですが、どうすればいいのでしょうか?

私が試してみて、唯一頭に浮かんだこと。

if(iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i) > 80
      && iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i+1) < 80

 while High[i] > iMA(NULL, PERIOD_CURRENT, MAfilter, 0, MODE_EMA, PRICE_CLOSE, i+1) //Candlestick High < Moving Average
            (
               1+1
            )
       
      )

{
         Buffer1[i] = High[i]; //Set indicator value at Candlestick High
         if(i == 0 && Time[0] != time_alert) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
        }
      else
        {
         Buffer1[i] = 0;

1+1はちょうどwhileループを埋めるために、私がやろうとしていることは、価格の高値がMAの下にあるまで矢印を描くために待つことですが、まだ私はこれをしたくないと文以来クロスが起こった私はちょうど私が描く利用したい待ちます。

しかし、これはsucsessfulではなかった、それゆえ私は、コミュニティのプロのコーダーをお願いします。

 
NWFstudent:

こんにちは。

最近、自分のアイデアを事前にテストするためにコーディングできるように、経験を積むためにMQL4のプログラミングを始めました。

今、絵を描くタイミングに悩んでいます。

例えば、ストキャスティクスのif文があり、MAが価格の上か下に行くまで待ってから描画したいのですが、どうすればいいのでしょうか?

私が試してみて、唯一頭に浮かんだこと。

1+1はちょうどwhileループを埋めるために、私がやろうとしていることは、価格の高値がMAの下にあるまで矢印を描くために待つことですが、まだ私はこれをしたくないと文以来クロスが起こった私はちょうど私が描く利用したい待ちます。

しかし、これはsucsessfulではなかった、それゆえ私は、コミュニティのプロのコーダーをお願いします。

このように試してみてください。

Buffer1[i] = 0;
if(   iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i)   > 80
   && iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i+1) < 80 
   && High[i] > iMA(NULL, PERIOD_CURRENT, MAfilter, 0, MODE_EMA, PRICE_CLOSE, i+1)) //Candlestick High < Moving Average
         Buffer1[i] = High[i]; //Set indicator value at Candlestick High

if(i == 0 && Time[0] != time_alert && Buffer1[i]!=0) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
 
mladen:

このように試してみてください。

これは、私に "クロスオーバーがMAの上に発生したときにのみ信号を与えるだろう、私はそれをMAの下にしたいのですが、私はMAの上にクロスオーバーを持っていると数バー後に価格がMAの下に移動した場合の信号も欲しいです。

これは、私がwhileループで試したもので、コードは引数がfalseになるまでループし、シグナルを描くために進行します。

私は回路図を作りました、多分あなたはよりよく理解するでしょう。

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

ファイル:
illust.png  24 kb