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

 

午後

1.トレードの結果、利益が出たのか、損失が出たのか、どのように表現するのでしょうか?例えば、最後の1枚は?

2.バーチャルトレードを行い、その結果(サイン)を考慮する方法は?

 
inoy:

午後

1.トレードの結果、つまり利益が出たか出なかったかをどのように表現するのですか?例えば、最後の1枚は?

2.仮想の取引を行い、その結果(サイン)を計上するにはどうしたらよいですか?

1.この2つの機能を見てください。

isCloseLastPosByStop
isCloseLastPosByTake

2.バーチャルトレードには、とても簡単な方法があります。入金額を100倍にして、まあ、悪名高い1000ポンドではなく、100000ポンドにしましょう。そして、仮想ポジションのロットは、限界まで減少します - 例えば、10などのワーキングロットで、0.01に。10の0.01、これは1パーセントの10分の1ですが、まったく気づかないほどの損失と利益です。

ディールマーク:isLossLastPos

 
sss2019:

ループが2つしかない場合、なぜiは最初に0に等しく、すぐに4に等しくなるのでしょうか?

このスクリプトから、アラートは0, 4を出力します。

まあ、パタムスタかもしれませんね。

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderMagicNumber() == MasterMagicNumber)     // а других точно нет?
      {
.............
      Alert(i);
.............
      }
.............
    }

こっちの方がいいのかもしれない。

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    Alert(i);
    if(OrderMagicNumber() == MasterMagicNumber)
      {
      starttime = OrderOpenTime();
      ArrayResize(prices,ArraySize(prices)+TradesCount);
      if(OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES))
      if(OrderMagicNumber() == MasterMagicNumber) endtime = OrderOpenTime();
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      times[i] = starttime;
      times[i+1] = endtime;
      tickets[i] = OrderTicket();
      symbol = OrderSymbol();
      while(g < TradesCount*(i+1))
        {
        if(OrderType() == OP_BUY)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()-LowOpen*Point;
            }else
            {
            prices[g] = prices[g-1]-step*Point;
            }
          }
        if(OrderType() == OP_SELL)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()+HighOpen*Point;
            }else
            {
            prices[g] = prices[g-1]+step*Point;
            }
          }
        g++;
        }
      }
    }
 
DmitriyN:

1.この2つの機能をチェックしてみてください。

isCloseLastPosByStop
isCloseLastPosByTake

2.バーチャルトレードの場合、非常にシンプルな方法があります。入金額を100倍にして、まあ、悪名高い1000ポンドではなく、100000ポンドにしましょう。そして、仮想ポジションのロットは、限界まで減少します - 例えば、10などのワーキングロットで、0.01に。10の0.01、これは1パーセントの10分の1であり、ほとんど目立った損失や利益はない。

ディールサイン:isLossLastPos


ありがとうございます。しかし、仮想入力にはもっとエレガントなオプションがあるに違いありません。"預金額を100倍にする" - 現実にはそんな選択肢 はないのですが......)。プロは、見逃すな!
 
inoy:

ありがとうございます。しかし、仮想入力にはもっとエレガントなオプションがあるに違いありません。"入金額を100倍にする" - 実機ではそのオプションがないのが残念です))プロは、見逃すな!

https://www.mql4.com/ru/search#!keyword=%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F&module=mql4_module_articles
 
Vinin:

https://www.mql4.com/ru/search#!keyword=%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F&module=mql4_module_articles

ありがとうございます。
 
DhP:

これを試してみてください。

bool GO = true;// глобальная переменная
//---------------------

if(GO && SignalType_1 && RSI >= 35 && Stoch >= 20 && CCI >= -100) {GO=false; return(+1);}//запретить повторный вход
//---------------
{OrderClose(.......); GO = true; }//открыть семафор при закрытии позиции.

Good afternoon.Tried to fix it now owl makes only one trade closes atstop loss and that's it.No other trades open.Tell me what's wrong.The only one trade closes atstop loss and that's it.

ファイル:
 
artemka_1981:

Good afternoon.tried to fix now owl makes only one trade closes at stop loss and that's it.no other trades open.tell me what's wrong.

if(OrdersTotal()==0)GO=true;
 
// < 0 - Dn
// > 0 - Up
int Signal()
{
double RSI = iRSI(NULL,15,RSIperiod,RSI_price,SignalBar);
double Stoch = iStochastic(NULL,15,Stoch_K,Stoch_D,Stoch_slowing,Stoch_method,Stoch_price,Stoch_mode,SignalBar);
double CCI = iCCI(NULL,15,CCI_period,CCI_price,SignalBar);

double MA2 = iMA(NULL,15,ma2_period,ma2_shift,ma2_method,ma2_price,SignalBar);
double IchiA = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 3, SignalBar);
double IchiB = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 4, SignalBar); 

    if(GO && SignalType_1 && RSI >= 65 && Stoch >= 80 && CCI >= 100) {GO=false; return(+1);}//запретить повторный вход (+1);
    if(GO && SignalType_2 && Bid >= MA2 && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход return(+1);
    if(GO && SignalType_3 && Bid >= IchiA && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход (+1);
    
   
    
    if(GO && SignalType_1 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    if(GO && SignalType_2 && Ask <= MA2 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    if(GO && SignalType_3 && Ask <= IchiB && RSI <= 35 && Stoch <= 20&& CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    
    if(OrdersTotal()==0)GO=true;
    
    return(0);
}
DhP:

どうも、うまくいきません、すみません、大丈夫です、ちょっと混乱しました、ありがとうございます。
 
こんにちは。iMaOnArray関数は、あらかじめ用意されたデータの配列を使用し、この関数の中では角括弧を付けずに記述します。この配列が2次元の場合はどうでしょうか?(例) Mas[4][100], すなわち100点ずつの独立した4つの配列