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

 
主に依頼を受けて書いているコーダーとして言わせてもらうと、数十行の「余分な」コードは(そこに書いたことを理解し、自信があれば)、少なくともシステム全体の信頼性、そしてそれぞれ返品や顧客とのコミュニケーションにおける問題の少なさの点では、決して冗長なものではないのです。
 
FAQ:
ほとんどカスタムメイドのコーダーとして言わせてもらうと、数十行の「余分な」コードは(そこに書いたことを理解し、自信があれば)、少なくともシステム全体の信頼性、ひいてはコールバックや顧客対応における問題の減少という点では、決して冗長なものではありません。

なるほど。ありがとうございます。すでに変更済みです。

ただ、いずれにしても、オープニングも「ずっしり」としたボリュームでできることがわかったのは興味深かったですね......。とはいかないが、事実として...

 
sergeev:

FAQにちゃんと書いてある。デフォルト」に頼ってはいけない。というのも、オーダーを送る前に正規化を行わないと、131エラー(ロット違い)がよく出た記憶があるからです。
たぶん、今のMMOは、執行のための注文を送るときに、サーバーのデフォルトのロットチェックを独自にやっているのだと思います。

ですから、送信前に必ずご自身で価格とロットの正規化を行う必要があります。

これはあなたにとって良いコーディングルールであり、将来起こりうる問題に対してより少ない手間で済むことを保証するものです。

了解しました、ありがとうございます。

"注文送信 前に正規化を行わないと131エラー(ロット違い)がよく出た記憶があるので" - 今はそのようなことはないです。

ロット正規化機能を「有効化し忘れた」ときに、誤って自分でチェックしてしまった。

 
Roman.:

なるほど。ありがとうございます。すでに変更済みです。

でも、やはり「ずっしり」としたボリュームで開くことができるのは面白いですね...。とはいかないが、事実として...


5桁の数字 が導入される前は、誰も正規化ということを全く考えず、すべてがそのまま通用した。
 
皆さん、こんにちは。
質問は以下の通りです。最初にインジケータを起動したときに表示されます。
アルファブラ・カダブラによる(pic.1)。さらに履歴をスクロールすると、すべて正常に表示されます(fig.2)。

何が問題なのか、教えてください。 コードが必要な方は下記をご覧ください。

#property indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Tomato
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property indicator_level1 0
#property indicator_levelcolor Gray
#property indicator_levelstyle 2

extern int Period_MA = 5;
extern int MA_Line1 = 13;
extern int MA_Line2 = 34;
 
double Brs[],BrsMA1[],BrsMA2[],MathArr[],MathArr1;
int i=0,j=0;
double hvostUp,hvostDn,rast,S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,Brs);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(1,BrsMA1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,BrsMA2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexLabel(0,"Bars_");
   SetIndexLabel(1,"Bars_MA1");
   SetIndexLabel(2,"Bars_MA2");
     
   ArrayResize(MathArr,Period_MA);
   
 //---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Bars_MA");

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start() {  

int ncount=IndicatorCounted();
int limit=Bars-ncount-1;

for (int i=0; i<limit; i++)
{

if (High[i+2]>High[i+1] && Low[i+2]>Low[i+1])
{
hvostUp=(High[i+2]-High[i+1])/Point;
hvostDn=(Low[i+2]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+1])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]<High[i+1] && Low[i+2]<Low[i+1])
{
hvostUp=(MathAbs(High[i+2]-High[i+1]))/Point;
hvostDn=(MathAbs(Low[i+2]-Low[i+1]))/Point;
rast=(High[i+1]-Low[i+2])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]>=High[i+1] && Low[i+2]<=Low[i+1])
{
S=(High[i+1]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+2])/Point;
}

if (High[i+2]<=High[i+1] && Low[i+2]>=Low[i+1])
{
S=(High[i+2]-Low[i+2])/Point;
rast=(High[i+1]-Low[i+1])/Point;
}

if (High[i+2]<=Low[i+1] || Low[i+2]>=High[i+1])
{
S=0;
rast=1;
}

if(j>=Period_MA-1)j=0;
j++;
 MathArr[j]=(S/rast*100);
 
Brs[i]=iMAOnArray(MathArr,0,Period_MA,0,0,0);
BrsMA1[i]=iMAOnArray(Brs,0,MA_Line1,0,0,0);
BrsMA2[i]=iMAOnArray(Brs,0,MA_Line2,0,0,0);
}   
  return(0);
}

Fig.1

図2

ファイル:
bars_ma_1.mq4  4 kb
 
このプロセスを自動化できればいいのですが、つまり、利益が発生するのを待つのではなく、この仕事をあらかじめやっておくことができればいいのです。あるいは、TPやSLがトリガーされたとき、スクリプトがクローズしたばかりの注文をすべて、ペンディングの形で開くような機能を作ろう。多くのトレーダーは、ある状況下で何をするか分かっているので、状況が起こる前にそれを実行するのは非常に便利です。
 
sting-igor:
このプロセスを自動化できればいいのですが、つまり、利益が発生するのを待つのではなく、この仕事をあらかじめやっておくことができればいいのです。あるいは、TPやSLがトリガーされたとき、スクリプトがクローズしたばかりの注文をすべて、ペンディングの形で開くような機能を作ろうか。多くのトレーダーは、ある状況下で何をするか分かっているので、状況が起こる前にそれを実行するのは非常に便利です。

あなたは正しい場所にいる :仕事
 
Fox_RM:
皆さん、こんにちは。
質問は以下の通りです。最初にインジケータを起動したときに表示されます。
アルファブラ・カダブラによる(pic.1)。さらに履歴をスクロールすると、すべて正常に表示されます(fig.2)。

何が問題なのか、教えてください。 コードが必要な方は下記をご覧ください。

Fig.1

図2


2回目の質問で申し訳ないです。

あなたのバリアントをこれと比較する

まだ正しく動作しないが、改善された

インジケータを再度編集

ファイル:
 
FAQ:

あなたはこちらへ:仕事
誰も持ってないんですか?
 
sting-igor:
誰も持ってないんですか?


ディグコードベース

見つからなければ、注文してください。