コーディングの方法は? - ページ 98

 

あるインジケータを別のインジケータで動作させるには?

基本移動平均線(MT4にインジケーターとして付属)を別のインジケーターに落とすと、そのインジケーターのMAを計算することができますが、カスタムインジケーターを 別のインジケーターに落とすことができるように変更するにはどうしたらいいのでしょうか?

 

オンバーオープン

こんにちは。

私は新しいバーが作成されたときにのみ(バーオープン時)コードの一部を実行したいのです。

誰かこのようなもののためのコードスニペットをお持ちですか?

乾杯

 

なぜ私のIndicatorはうまく動作しないのでしょうか?

#property copyright "沈欣" (プロパティ・コピーライト)

#property link "shenxinon@126.com"

#property indicator_separate_window (インジケータ分離ウィンドウ)

#property indicator_buffers 1 (インジケーターバッファー1)

#property indicator_color1 SteelBlue (インジケーターカラー1スチールブルー)

//#property indicator_minimum -0.01

//#property indicator_maximum 0.01 (最大値)

//---- 入力パラメータ

extern int SMA1=12;

extern int SMA2=72;

//---- バッファ

double ExtMapBuffer1[];

//---- 自定区域

//+------------------------------------------------------------------+

//| カスタムインジケータ 初期化関数

//+------------------------------------------------------------------+

int init()

{

//---- インジケータ

SetIndexStyle(0,DRAW_LINE)を設定します。

SetIndexBuffer(0,ExtMapBuffer1)を設定する。

string sName="RAVIインジケータ";

IndicatorShortName("RAVIインジケータ("+SMA1+", "+SMA2+")");

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケーターイテレーション関数

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars<0) return(-1);// エラーがあれば終了して -1 を返す

if(counted_bars>0) counted_bars--;

int pos = Bars-counted_bars;

double sma1,sma2,r;

while(pos>=0)

{

sma1=iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,pos)。

sma2=iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,pos);

r=((sma1-sma2)/sma2)*10000;

//Alert("r=",r);

ExtMapBuffer1[pos]=r;

pos--;

}

return(0);

 

...

任せて

 
diffused:
こんにちは。

私は新しいバーが作成されたときにのみ(バーオープン時)コードの一部を実行したいのです。

どなたかこのようなコードの断片をお持ちの方はいらっしゃいませんか?

Cheers

if (ボリューム[0] == 1)

{というコードです。}

Big Be

 

トレンドエンベロープ EA

ホラ

私はMQLを教えています。

テクニカル指標の使い方 - MQL4で簡単なプログラム - MQL4チュートリアル を読みましたが、以下のようなものが見当たりません。

例えば、EAのテスト中にエントリーバーに色をつけることは可能ですか?

メタトレーダーでは、Cコンパイラにある変数配列のフィールドを見るような、ウォッチシステムは見当たりません。

こんなバカげたシステムもやってみたい。

価格が壊れ、トレンドの開発(黄色の円を見てください)私はアラートを開き、ブレークバーに色を付けるとき。

しかし、私の問題は、私は唯一のトレンドアップインディケータとしない短い期間中になぜ読むこと、このことですか?

double maxprec= iHigh(NULL, PERIOD_M5,1);

double minprec=iLow(NULL, PERIOD_M5,1);

double chiusura2 = iClose(NULL,PERIOD_M15 ,2);

double chiusura = iClose(NULL,PERIOD_M15 ,1);

double chiu2 = iClose(NULL,PERIOD_M5 ,2);

double chiu = iClose(NULL,PERIOD_M5 ,1);

double apertura = iOpen(NULL,PERIOD_M15 ,0)

string rottura [3] = {" Nulla"," ROTTO"};

envelope15_1=iCustom(NULL, PERIOD_M15, "TrendEnvelopes_v1", 5,0,1);// trend envelope

if( chiusura2 > envelope15_2 && chiusura < envelope15_2 && apertura <= envelope15_2)

{

rot=1;

Alert ( " ha rotto SH M15");

}

else

rot=0;

Comment( ""\nBreak Enveolpe M 5= ", rottura[rot2],

"\nBrerak Enveolpe M 15= ", rottura[rot]

); // Alert
ファイル:
eur_1.jpg  101 kb
 

正しい計算式はこれだ

ユーロ/スイスフランの1ピップの価値を計算するための正しい公式はこれです。

(1/(eur/chf))*10*(eur/us)

1ピップは0.0001です。

上記の正しい計算式は?

 
lizmerrill:
EUR/CHF クロスの 1 ピップの値を計算するための正しい式はこれです。

(1/(eur/chf))*10*(eur/us)

1ピップは0.0001です。

上記の式は正しいですか?

このコードを使用します。

pipvalue=MarketInfo("EURCHF",MODE_TICKVALUE);

これがお役に立てれば幸いです。

 

一定時間後にポジションのオープンを停止させるコードが必要です。

このセクションのすべての投稿をすでに見ましたし、フォーラムの一番上にあるグーグル検索ツールを使ってすべてのフォーラムを調査しましたが、私が見つけたものは私が探しているものではありませんでした。

私が必要としているのは、私のEAに実装しなければならないコードで、ある時間、例えば15GMT以降に新しいポジションを開くことを止めるものです。このパラメータは、ユーザーパネルから変更できる設定である必要があります。

EAがポジションを開くことができる期間を設定することができれば最高なのですが。

X時間から Y時間まで オープン

ご助力ありがとうございます。

ご担当者様

 
mauro269:
このセクションのすべての投稿をすでに見ましたし、フォーラムの上部にあるgoogle検索ツールを使ってすべてのフォーラムを調査しましたが、私が見つけたものは私が探しているものではありません。

私のEAに実装しなければならないコードで、ある時間、例えば15GMT以降に新しいポジションを開くことを止めるものが必要です。このパラメータは、ユーザーパネルから変更できる設定である必要があります。

EAがポジションを開くことができる期間を設定することができれば最高なのですが。

X時間から Y時間まで オープン

ご助力ありがとうございます。

お問い合わせ先

以下、私のやり方です。

extern bool Use.Time.Filter = false;

extern string Server.Time.To.Start = "08:00";

extern string Server.Time.To.Stop = "16:00";
start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " + Server.Time.To.Start);

end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop);

if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0);

お役に立てれば幸いです。

FerruFx