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

 
alsu:
プロプライエタリなものでは、おそらくMS VisualStudioでしょうが、フリーのものもあり、たとえばCodeBlocksはなかなか良いものです。
ありがとうございます。まずはVISUAL C++ 2010 EXPRESSとCodeBlocksから始めてみようと思います。
 
rustein:

C,C++,C#の勉強を始めることにしました。誰か良いコンパイラとエディタを教えてください。

ありがとうございます。


フォーゴッテン

パーラー

 
freeDRIVER:


を忘れることはありません。

パーラー

ありがとうございます、読んでみてください、面白い企画 ですね。
 

残念ながら、上記のどれもが役に立ちませんでした。

https://www.mql5.com/ru/forum/138609/page9#edit_form という疑問は、今でも残っています。

助けてください!

 

例えば、4Hチャートで5日間の最小のろうそくやバーを表示します。

日または時間、指標の 設定で設定する。 そして、指標のフラクタルと同じように、このろうそくの矢印をマーク。

とか、そんな感じです。
 
Fox_RM:

残念ながら、上記のどれもが役に立ちませんでした。

https://www.mql5.com/ru/forum/138609/page9#edit_form という疑問は、今でも残っています。

助けてください!

変更したコードをもう一度見せてください。
 
Fox_RM:

残念ながら、上記のどれもが役に立ちませんでした。

https://www.mql5.com/ru/forum/138609/page9#edit_form という疑問は、今でも残っています。

助けてください!

すでに多くのアドバイスをいただいています。まず、質問者様が再度元のコード(コメントというか修正なし)を掲載するのは正しくありません。次に、エラー検索のアルゴリズムを独自に工夫することです。MQL4では、中間結果を印刷すること以上にうまくいったものはありません。作者は、自分が書いたコードの論理を知る唯一の人間なので、まず論理的な間違いに気づくことができる......。;)))
 

最新バージョンです。

//+------------------------------------------------------------------+
//|                                              Ti&Pi_Exp.mq4       |
//|                                        Copyright © 2012, FOX.RM  |
//|                                             fox.rm@mail.ru       |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2012, FOX.RM"
#property link      "fox.rm@mail.ru"

int start() {  
 
double MA1[],MA2[];
double delta,price,old_price,col_bar,sum_tick,sum_pip,TP_UP[20],TP_DN[20],TP_UPMin[20],TP_DNPl[20]; //---размерность массивов
int sum_pip_bay,sum_pip_sell,i=0,limit,k=0,old_sell=0,old_bay=0;
int count_plus,count_minus,raz,count;
datetime time_Bar; 

  ArrayResize(MA1,Bars);ArrayResize(MA2,Bars);

raz=20-Bars;                    //--- расчет по
count=Bars+raz;                 //--- последним 20 барам
for (i=0;i<count;i++)           //--- вроде так
{  
    price = Close[i]/Point;    
    delta = price-old_price;
          
    if(!time_Bar)time_Bar=Time[0];
    col_bar = iBarShift(NULL,0,time_Bar)-iBarShift(NULL,0,Time[i]);
    if (col_bar >= 1)
    
    {time_Bar=Time[i];sum_pip_bay=0;
    sum_pip_sell=0;sum_pip=0;
    old_bay=0;old_sell=0;sum_tick=0;
    count_plus=0;count_minus=0;}
     
     //---- Расчет UP
    if(delta>=0)
    {if(delta>100)delta=1;
    sum_pip_bay = delta + old_bay;   
    old_bay=sum_pip_bay;
    count_plus++;}  
    
     //---- Расчет Down
    if(delta<0)
    { sum_pip_sell = delta+old_sell;
     old_sell=sum_pip_sell;
    count_minus++;}
          
        sum_tick=count_plus+count_minus;
        sum_pip=sum_pip_bay+MathAbs(sum_pip_sell);
     
      //---
  
        if (MA1[i]>=0){TP_UP[i]=MA1[i];}else{TP_UPMin[i]=MA1[i];}
        if (MA2[i]<=0){TP_DN[i]=MA2[i];}else{TP_DNPl[i]=MA2[i];} 
             
//----
    old_price=price; 

//------
if(NewBar())
  { 
  
 MA1[i] = count_plus - sum_pip_bay;
 MA2[i] = count_minus - MathAbs(sum_pip_sell);
 
 //---- Условия на открытие сделки
 
 
 if (Sredn(TP_UP)>=1.5)OrderSend(Symbol(),OP_SELL,0.1,Bid,2,50,20);  //--- сделки только + Bid
 if (Sredn(TP_DN)>=1.5)OrderSend(Symbol(),OP_BUY,0.1,Ask,2,50,20);  //--- на новом баре + Ask
   }    
   }                
   return(0);
}

//---- Функции
double Sredn(double ArrSr[])
{
double a=1,c,step=1/20;
for (int i=0;i<20;i++)                         //--- тут привел в соответствие
{if (ArrSr[i]==0){a*=1;}else{a*=MathAbs(ArrSr[i]);}}
c=MathPow(a, step);
  return(c);
}
//-------------
bool NewBar()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar!=curbar)
   {
      lastbar=curbar;
      return (true);
   }
   else
   {
      return(false);
   }
}
 
Fox_RM:

最新バージョンです。

double a=1,c,step=1/20;

1) ステップ変数が0である。0.05を 入力するか、1./20として 割り算する。

2) その後、トレードが開こうとし始めるが

OrderSend(Symbol(),OP_SELL,0.1,Bid,2,50,20)

50と20の代わりに、ストップロスとテイクプロフィットのレベルを設定する必要があります(_absolute_)。


追伸:非開放の基本的な瞬間しか見ていません。もちろん、さまざまなことを最適化し、追加していかなければなりません。

 
Fox_RM:

最新版です。

この「マザコン」は何なんだ。

raz=20-Bars;                    //--- расчет по
count=Bars+raz;                 //--- последним 20 барам

なぜ素直にそう宣言しないのか。

count = 20;

そして、これらの配列MA1[]とMA2[]の次元を一度に宣言して苦しめないことです。

double MA1[20],MA2[20];

そして、それとともに。

 if (Sredn(TP_UP)>=1.5)OrderSend(Symbol(),OP_SELL,0.1,Bid,2,50,20);  //--- сделки только + Bid
 if (Sredn(TP_DN)>=1.5)OrderSend(Symbol(),OP_BUY,0.1,Ask,2,50,20);  //--- на новом баре + Ask

原点に立ち返り、...知のSTOPPのサイズをpips単位で取引注文に 渡すのですが、LEVELSを渡す必要があります!!!!そして、オンラインで作業するためには、レベル(価格、SL、TP)を正常化する必要があります!!!

 if (Sredn(TP_UP)>=1.5)
OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble (Bid,Digits),2,NormalizeDouble (Ask+50*Point, Digits),NormalizeDouble(Ask-20*Point,Digits), 0, MAGIC);  //--- сделки только + Bid
 if (Sredn(TP_DN)>=1.5)
OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,Digits),2,NormalizeDouble(Bid-50*Point,Digits),NormalizeDouble(Bid+20*Point,Digits), 0, MAGIC);  //--- на новом баре + Ask

そしてもうひとつ、最初から「大人」として慣れること。注文のMAGICを割り当てること!!!将来的に必要になる!!!