アスク! - ページ 151

 

MetaTraderとオーダーブック

OK、私は "Ask "と "Bid "定義済みの変数は、実際に最高の順序を格納することを言わなければならない...。しかし、オーダーブックの他のレベルやロットについてはどうでしょうか?私のコードでこれらのデータを使用することができますか?

私はウェブ上のすべての場所を検索しますが、答えを見つけられませんでした。

プロタ

 

早速ですが、1つ質問です。

おい、もし俺が太字に したら、下線は 必要ないだろ?

if(Ask>=Line1)

{

posisi=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0, "OneLineEA ver 1.0", Megic,0,Green).if(OrderSelect(posisi,SELECT_BY_TICKET)==true);

if(OrderSelect(posisi,SELECT_BY_TICKET)==true)

{

posisi=OrderTicket()。

}

}

 

お願いします

HI codersguru

ありがとうございます。

このステートメントとその意味について説明してください。

for(int shift = Bars-10; shift >= 0; shift--)

{

ExtMapBuffer1[shift] = ma[shift];

ExtMapBuffer2[shift] = ma[shift];

//印刷(ma[shift])します。

if (ma[shift] > ma[shift+1])

{

ExtMapBuffer1[shift] = EMPTY_VALUE;

ExtMapBuffer2[shift+1] = ma[shift+1];

}

else if (ma[shift] < ma[shift+1])

{

ExtMapBuffer2[shift] = EMPTY_VALUE;

ExtMapBuffer1[shift+1] = ma[shift+1];

}

このEAで

//---- インジケーターの設定

#property indicator_chart_window(インジケーターチャートウィンドウ

#プロパティ indicator_buffers 2

#property indicator_color1 ライム

#property indicator_color2 Red(インジケーターカラー2 レッド

//---- バッファ

double ExtMapBuffer1[];

double ExtMapBuffer2[],ma[];

extern int MAType = 1;

extern int MAPeriod = 34;

extern int MAShift = 0;

extern int PriceType=0;

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

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

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

int init()

{

//---- カウントのために2つのバッファを追加で使用します。

IndicatorBuffers(5);

//---- 描画の設定

SetIndexBuffer(0,ExtMapBuffer1)を設定します。

SetIndexBuffer(1,ExtMapBuffer2)を設定します。

SetIndexBuffer(2,ma)を設定します。

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

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

//---- 初期化完了

return(0);

}

int start()

{

for(int i = Bars-10; i >= 0; i--)

{

ma=iMA(NULL,0,MAPeriod,MAShift,MAType,PriceType,i)。

}

for(int shift = Bars-10; shift >= 0; shift--)

{

ExtMapBuffer1[shift] = ma[shift];

ExtMapBuffer2[shift] = ma[shift];

//印刷(ma[shift])します。

if (ma[shift] > ma[shift+1])

{

ExtMapBuffer1[shift] = EMPTY_VALUE;

ExtMapBuffer2[shift+1] = ma[shift+1];

}

else if (ma[shift] < ma[shift+1])

{

ExtMapBuffer2[shift] = EMPTY_VALUE;

ExtMapBuffer1[shift+1] = ma[shift+1];

}

}

return(0);

}

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

お疲れ様

 

これはEAではなく、「Moving Average」インジケータが上昇または下降する瞬間を表示するためのインジケータです。

このコードは、直近の10本のバーだけを計算します。

これを/indicatorsディレクトリに置いて、ターミナルを再起動してください。

 

違い

こんにちは

私は

EMA5cとEMA5pの違いは何ですか?

どのような平均(EMA5c> EMA10c && EMA5pEMA10c))。

ダブルEMA5c = iMA(NULL、TimeFrame、5、0、MODE_EMA、PRICE_CLOSE、0

double EMA10c = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,0)。

double EMA5p = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE,1); double EMA5p = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE,1);

double EMA10p = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,1); double EMA10p = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,2);

 

この名前は単なる変数名であり、それ自体には何の意味もない。プログラマーは通常、どのような値を保持することになるのかが一目瞭然になるように変数名を決めます。この2つを見ると、プログラマーは現在のbars変数にc、前のbars変数にpというサフィックスを付けることにしたようです。

Lux

 

友人からもらったインジケータを数週間使っていますが、とても気に入っています。 簡単に説明すると、チャート上に矢印が表示され、どちらに動くかを教えてくれます。 30mチャートで使っているので、あまり頻繁には出てきません。 ロングポジションで矢印が表示されたら、ショートポジションを決済してロングにするか、ショートポジションがなければロングにする方法はないでしょうか。 また、その逆でショートのシグナルが出るようにすることはできますか?

 

編集ボタンが見当たらなかったので、ここにコードを記載します。 売買コードを入れるだけなら、それほど難しいことではなさそうです。 これはジグザグコードからです。 フリーのインドールです。

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

//---- indicator parameters

extern int ExtDepth=12;

extern int ExtDeviation=5;

extern int ExtBackstep=3;

//---- indicator buffers

double ZigzagBuffer[];

double HighMapBuffer[];

double LowMapBuffer[];

int level=3; // recounting's depth

bool downloadhistory=false;

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

//| Custom indicator initialization function |

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

int init()

{

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_SECTION);

//---- indicator buffers mapping

SetIndexBuffer(0,ZigzagBuffer);

SetIndexBuffer(1,HighMapBuffer);

SetIndexBuffer(2,LowMapBuffer);

SetIndexEmptyValue(0,0.0);

//---- indicator short name

IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");

//---- initialization done

return(0);

}

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

//| |

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

int start()

{

int i, counted_bars = IndicatorCounted();

int limit,counterZ,whatlookfor;

int shift,back,lasthighpos,lastlowpos;

double val,res;

double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded

{

ArrayInitialize(ZigzagBuffer,0.0);

ArrayInitialize(HighMapBuffer,0.0);

ArrayInitialize(LowMapBuffer,0.0);

}

if (counted_bars==0)

{

limit=Bars-ExtDepth;

downloadhistory=true;

}

if (counted_bars>0)

{

while (counterZ<level && i<100)

{

res=ZigzagBuffer;

if (res!=0) counterZ++;

i++;

}

i--;

limit=i;

if (LowMapBuffer!=0)

{

curlow=LowMapBuffer;

whatlookfor=1;

}

else

{

curhigh=HighMapBuffer;

whatlookfor=-1;

}

for (i=limit-1;i>=0;i--)

{

ZigzagBuffer=0.0;

LowMapBuffer=0.0;

HighMapBuffer=0.0;

}

}

for(shift=limit; shift>=0; shift--)

{

val=Low;

if(val==lastlow) val=0.0;

else

{

lastlow=val;

if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=LowMapBuffer[shift+back];

if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;

}

}

}

if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;

//--- high

val=High;

if(val==lasthigh) val=0.0;

else

{

lasthigh=val;

if((val-High[shift])>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=HighMapBuffer[shift+back];

if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;

}

}

}

if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;

}

// final cutting

if (whatlookfor==0)

{

lastlow=0;

lasthigh=0;

}

else

{

lastlow=curlow;

lasthigh=curhigh;

}

for (shift=limit;shift>=0;shift--)

{

res=0.0;

switch(whatlookfor)

{

case 0: // look for peak or lawn

if (lastlow==0 && lasthigh==0)

{

if (HighMapBuffer[shift]!=0)

{

lasthigh=High[shift];

lasthighpos=shift;

whatlookfor=-1;

ZigzagBuffer[shift]=lasthigh;

res=1;

}

if (LowMapBuffer[shift]!=0)

{

lastlow=Low[shift];

lastlowpos=shift;

whatlookfor=1;

ZigzagBuffer[shift]=lastlow;

res=1;

}

}

break;

case 1: // look for peak

if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)

{

ZigzagBuffer[lastlowpos]=0.0;

lastlowpos=shift;

lastlow=LowMapBuffer[shift];

ZigzagBuffer[shift]=lastlow;

res=1;

}

if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)

{

lasthigh=HighMapBuffer[shift];

lasthighpos=shift;

ZigzagBuffer[shift]=lasthigh;

whatlookfor=-1;

res=1;

}

break;

case -1: // look for lawn

if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)

{

ZigzagBuffer[lasthighpos]=0.0;

lasthighpos=shift;

lasthigh=HighMapBuffer[shift];

ZigzagBuffer[shift]=lasthigh;

}

if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)

{

lastlow=LowMapBuffer[shift];

lastlowpos=shift;

ZigzagBuffer[shift]=lastlow;

whatlookfor=1;

}

break;

default: return;

}

}

return(0);

}

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

新米質問

こんにちは、すべて

前のローソク足でカスタムインジケーターを 探すことは可能ですか? もし可能なら、どうすればいいですか?

基本的に私は、指標の色を探したい。

事前にありがとうございました。

 
basalo:
こんにちは

前のローソク足でカスタムインジケーターを探すことは可能ですか? もし可能なら、どうすればいいですか?

基本的には、インジケータの色を探したいのですが。

事前にありがとうございました。

メタエディタのヘルプにあるiCustom関数を ご覧ください。

Lux