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

 

こんにちは。

ロット単位で計算する関数が必要です。例えば、ロットが500個増えるごとに、何が調整できるでしょうか。

ソデポ1000-ロット0.1

デポ1500 - ロット 0.15

2000年~ロット0.2

機能の掲載をお願いします。

 

おはようございます!ギャップコンディションの意味とは?価格が35ピップ上昇すると、私のストップロスは注文の10ピップ下、つまり価格からの距離は45ピップです。

あるいは、どのようなギャップがあるのでしょうか。

 
T-G:

こんにちは。

ロットを段階的に計算する機能が必要です。それは、例えば500ロット増加するごとに調整することが可能でしょう。

ソデポ1000-ロット0.1

デポ1500 - ロット 0.15

デポ2000 - ロット0.2

機能の掲載をお願いします。


機能がなくても可能です。

extern double depo = 1000.0;

extern double lot    = 0.1; 

double Lot; 

//--------------------------------

int start()

//--------------------------------

double Equ = AccountEquity();

Lot  = NormalizeDouble(lot*Equ/depo,2);
 
T-G:

こんにちは。

ロットをインクリメンタルに計算する機能が必要です。例えば、500ロット増加するごとに何を調整することが可能か

ソデポ1000-ロット0.1

デポ1500 - ロット 0.15

デポ2000 - ロット0.2

機能の掲載をお願いします。

こんなやり方もあるんですね。

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Расчитываем размер лота (ступенчато)                                       |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fGet_Lots (double fd_BeginLot = 0.1,        // начальный размер лота
                  int fi_BeginDepo = 1000,         // начальный размер депозита
                  int fi_IncrementDepo = 500,      // приращение депозита
                  double fd_IncrementLot = 0.05)   // приращение лота
{
    double ld_Balance = AccountBalance();
//----
    if (ld_Balance < fi_BeginDepo + fi_IncrementDepo) return (fd_BeginLot);
    int li_K_Lot = (ld_Balance - fi_BeginDepo) / fi_IncrementDepo;
//----
    return (fd_BeginLot + fd_IncrementLot * li_K_Lot);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+

ロットを正規化することだけは忘れないでください。

 
スタート地点の上にチケットを発行。今は1つの注文しか修正されませんが、これもエラーですそうでなければ、変数はifの内部で宣言されたことになります。
 
Dimka-novitsek:

おはようございます!ギャップコンディションってどういう意味ですか?価格が35ピップ上昇すると、私のストップロスは注文の10ピップ下、つまり価格からの距離は45ピップです。

あるいは、どのようなギャップがあるのでしょうか。


おはようございます、すっきりした頭ですね。

私たちが修正注文を送信し、受信し、実行している間、価格は止まっているわけではなく、上か下か、誰にもわからないのです

#include <stderror.mqh>
#include <stdlib.mqh> 
//-------------------

extern int prev = 30;//зазор! Для 5-знака!
extern int sl   = ??;
extern int tp   = ??;
//------------------
int start()
{
//------------------
//----------------------/  Stops & Trailing  \----------------------\\
  for(int i = 0; i < OrdersTotal(); i++)
  {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
      if(OrderSymbol() != Symbol() && OrderMagicNumber() != Magic) continue;
      if(OrderCloseTime() != 0) continue;
      if(OrderType() == OP_BUY)
      {
        if(OrderStopLoss() < OrderOpenPrice() || OrderStopLoss() == 0)
        {
//----------------------
          if(OrderStopLoss() == 0)
          if(Bid < OrderOpenPrice() && Bid > NormalizeDouble(OrderOpenPrice()-sl*Point+prev*Point,Digits))
          if(Bid > NormalizeDouble(OrderOpenPrice()-sl*Point+prev*Point,Digits))
          {
            SL = NormalizeDouble(OrderOpenPrice()-sl*Point,Digits);
            if(Bid < NormalizeDouble(OrderOpenPrice()+tp*Point-prev*Point,Digits))
            {
              TP = NormalizeDouble(OrderOpenPrice()+tp*Point,Digits);
              ModifyOrder(OrderTicket(),OrderOpenPrice(),SL,TP,0,Blue);return(0);
        } } }
//-----------------------
//------------------------/  Modify Order  \------------------------\\
void ModifyOrder(int ticket,double price,double stoploss,double takeprofit,datetime e,color arrow_color)
{
  int ModifyCnt = 0, err;
  while(ModifyCnt < 3)
  {
    if(OrderModify(ticket,NormalizeDouble(price,Digits),NormalizeDouble(stoploss,Digits),
    NormalizeDouble(takeprofit,Digits),0,arrow_color))
    ModifyCnt = 3;
    else err = GetLastError();
    if(err > 0)
    { 
      Print(ModifyCnt," #",ticket," Error modifing order: (", err , ") " , ErrorDescription(err));
      Sleep(3000); RefreshRates(); ModifyCnt++;
} } }

そして、サルの場合はその逆が適切なのです私的には冗長な解説なしで、頑張って解明してください!

それと、ロシア語の解説辞書を見て、投稿が読みやすくなるようにお願いします。

もう10年以上違う言語で考えているので、皆さんの「工夫」についていけず、時々調べますが...。:))

 
Dimka-novitsek:

こんにちは。注文修正エラー 4051。1時間ほど考えていた。そこに正しいパラメータがあるように思える!!!長い話を短くするとパラメータ price は、OrderOpenPrice() の注文開始価格であり、標準的なものです。

ストッププライスはオープンプライスより10ポイント低いところにあり、そのプライスを記憶しています。注文を開くときに変数tsenaに格納します。

利益が出ているものと出ていないもの、2つの注文があります。クリアしているようです。エラーは何ですか?他に何があるんだ?

そうですね、あまり関係ないですが、条件はクリアしているようです。つまり、価格が30ポイント動いたので、条件が成立した(tsena+30*Point)。

perenos=trueを一度設定しました。これらの条件は実際に動作しているようです。

どう考えたらいいのかわからない。

Actually Wear once perenos=true; これらの条件は、どこにも着用しないので、守る必要はありませんでした。

このラインです。

        int tacket = OrderSend (Symbol(), OP_BUY, lot, NormalizeDouble (Ask, Digits), 5, NormalizeDouble (Ask - (35 * Point), Digits), 
            NormalizeDouble (Ask + (45 * Point), Digits), NULL, 450, 0, CLR_NONE);

そして、tick = 0 の注文を変更するためにこの変数を使用する(このティックでは使用しない)ことは、あなたが基本を知らないことを示しています - ローカルとグローバル変数の 概念から始めましょう。

そして、開いたばかりの注文のコピーを2秒後に開く - これが最高の操縦法だ!!!!- 泣ける...:)))

 
ありがとうございます!
 
borilunad:

機能がなくてもできる。

答えを急ぐ前に、まず条件(相手が何を望んでいるか)をよく読んで、コードの結果を取って計算することを面倒くさがるべきだったのです。
とりあえず、話はDepositで、こちらはAccountBalance()です。Equ/depoは端数だし、どんなよろこび方をするんだ?
 
TarasBY:
答えを急ぐ前に、まず条件(相手が何を望んでいるか)をよく読み、コードの結果を取り出して計算することです。
とりあえず、話はDepositについてで、それはAccountBalance()のことです。Equ/depoは端数だし、どんなスタッフィングになるんだろう?

ここでも段差よりも滑らかさの方が適切なのでしょう。そして、「その人が必要としているもの」については、その人がまだ明確になっていないことを、あなたはよく分かっているはずです