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

 
sponger:
Km=MathMax(i/r,Point); // 割り算で、0にはなりません!このようにすることができるのです。
 
borilunad:
Km=MathMax(i/r,Point); // 割り算で、0には なりません!このようにすることができるのです。

わあああああああああああああああああああああああああああああああああああああああああああああああああああああああ頭!ありがとうございました!!!非常に面倒な4時間の作業の後、私は最終的にテスターが誓わないように、この機能を固執する方法を見つけました)は、以下のように出てきました。

double a=iLowest(Symbol(),PERIOD_M1,MODE_LOW,m1,0); //最小値を持つn期間分のバーインデックスを返す。

double b=iHighest(Symbol(),PERIOD_M1,MODE_HIGH,m1,0); //最大値を持つn期間分のバーインデックスを返す。

double MinLOWPeriod=iLow(Symbol(),PERIOD_M1,a); //最安値を持つバー価格の値を返す。

double MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,b); //最高値をつけたバーの価格を返す。

double PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //直近のバーの終値を 返す。

double xm1=(PriceCloseBar-MinLOWPeriod)/(MathMax((MaxHIGHPeriod-MinLOWPeriod)/100,Point));

Print(xm1);

と、処方をよりスムーズにすることもできました;)

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

 
Жалко, кнопочки "Спасибо" нету(
 

sponger:

ありがとうございました」ボタンが ないのが残念。

しかし、もう一つ魔法のボタンがあります:SRCを 使うと、質問者の投稿の中でコード(またはその断片)がよりきれいに読みやすくなり、質問の著者のカルマにプラスが付き、このコードを見て彼を助けようと思う人の数が増えます。

ただ、しーんとしている。.だから、SRC ボタンの魔法の秘密の知識では、一般的に、サイト上のマニュアルの神聖なテキストを 読んでいる人だけ、専念しています。例えば、この ようなものです。

そして、ここでさらに問題を解くための秘伝の 知識をマスターすることに成功するのです
 
sponger:

わあああああああああああああああああああああああああああああああああああああああああああああああああああああああ頭!ありがとうございました!!!非常に面倒な4時間の作業の末に、テスターが悪態をつかないようにこの機能をくっつける方法を見つけた)およそ次のような結果が出た。

double xm1=(PriceCloseBar-MinLOWPeriod)/(MathMax((MaxHIGHPeriod-MinLOWPeriod)/100,Point));

Print(xm1);

と、処方をよりスムーズにすることもできました;)

ありがとうございます。

どういたしまして。そして、ディパックに 100%同意しますがんばってください。
 
void ChagingLots(int Magic,double percent,double lot)
{ 
  double t=2,             //коэффициент при делении,для того чтобы узнать цену закрытия
         PriceCl,         //цена закрытия части ордера
         takeprofit;      //нужна для вычислений
  int count = 0,order;
  for(int i=OrdersTotal()-1;i>=0;i--)    //пробегаемся по массиву ордеров
     {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
          {
            if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)
              {
                 if(OrderType()== OP_BUY)        //если ордер на покупку
                 {
                 takeprofit = OrderTakeProfit();   //вычисляем тейк ордера
                 PriceCl    = NormalizeDouble((takeprofit + OrderOpenPrice())/t,Digits);  //примерную цену закрытия
                 order = OrderTicket();    //получили ордер
                 if(Bid>PriceCl) //если текущая цена оказалась выше нашей цены ,то закрываем часть ордера
                 {OrderClose(order,NormalizeDouble(lot*percent/100,2),PriceCl,3);} 
                 }
                 if( OrderType()== OP_SELL )// для продажи аналогично
                 {
                   takeprofit = OrderTakeProfit();
                   PriceCl    = NormalizeDouble((takeprofit + OrderOpenPrice())/t,Digits);
                   order = OrderTicket();
                   if(Bid<PriceCl)
                   {OrderClose(order,NormalizeDouble(lot*percent/100,2),Bid,3);}
                 }
              }
          }
     }
     
}

こんにちは、皆さん)

ポジションの一部を閉じる関数を書こうとしたのですが、テスターで実行すると138がエラーに なり、何が問題なのかわかりません。 ヘルプをお願いします。

この機能が動作するExpert Advisorは次のとおりです。)

ファイル:
zigzagx.mq4  16 kb
 
LBatters:

こんにちは、皆さん)

ポジションの一部を閉じる関数を書こうとしたのですが、テスターで実行すると138がエラーになり、何が問題なのかわかりません。 ヘルプをお願いします。

この機能が動作するはずのEAがあるのですが...)

このエラーが何を意味するのか、Dockを見ましたか!そこから、答えが見えてくるはずです

買い付けは何円で終了するのですか?で、売りは?

 

皆様へのご挨拶
私の質問は、methaquotesの開発者に関連するものですが、それでも...


Сколько баров храниться история? Т.е. с каким максимальным по сдвигу баром можно работать?

コード

Print(iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,1200));

Print(iClose(Symbol(),0,1200));

このシフトをテストする場合、次の2つのケースで端子から0.0が出力されます。

しかし

Print(iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,120));

Print(iClose(Symbol(),0,120)); 

テストではすべて正常に動作します

利用可能な履歴のサイズをどうにかして調整できないでしょうか。もしかしたら、誰かがそのような問題に直面し、すでに解決策が見つかっているのかもしれません。
ありがとうございました。

 

皆さん、こんにちは。

キムさんのシンプルなトロールEAを更新して、成行注文を全て決済した後に保留中の注文を 削除しようとしているのですが、失敗します(

保留中の注文を削除する機能を追加しました。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Удаление ордеров                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  bool fd;
  int  err, i, it, k=OrdersTotal(), ot;

  if (sy=="0") sy=Symbol();
  for (i=k-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) {
            for (it=1; it<=NumberOfTry; it++) {
              if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
              while (!IsTradeAllowed()) Sleep(5000);
              fd=OrderDelete(OrderTicket(), clDelete);
              if (fd) {
                if (UseSound) PlaySound(SoundSuccess); break;
              } else {
                err=GetLastError();
                if (UseSound) PlaySound(SoundError);
                Print("Error(",err,") delete order ",GetNameOP(ot),": ",ErrorDescription(err),", try ",it);
                Sleep(1000*5);
              }
            }
          }
        }
      }
    }
  }
}

私はコーディングがあまり得意ではないので、解決できないはずの別の問題に直面しました。

などの条件を書けばいいのでしょうね。

これはあくまで他のEAでの例です。

   if(AccountProfit()<-TargetLoss || AccountProfit()>TargetProfit) 
     {
      ClosePosFirstProfit();
      if(DeleteOrders) DeleteOrders();
     }


よろしくお願いします。

ファイル:
tral.mq4  19 kb
 
MQL-4通の皆さん、MQ4コードはどのようにしてインジケータをアンロードし、再びロードすることができるのでしょうか?