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

 
arshadFX:
1、取引条件が発生した後、ブールフラグを追加する。

2、注文する前にブールフラグをチェックする

3、注文後、ブールフラグをリセットする必要があります。

4, init()でフラグをリセットする。

ありがとうございます。

 

MQLガイド募集中 =^_^=

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

#property indicator_buffers 2 インジケータバッファ2

#property indicator_color1 ホワイト

#property indicator_color2 ホワイト

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

extern int Signal.period = 5;

//---- バッファ

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

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

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

int init()

{

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

// カウントに使用する2つの追加バッファ

IndicatorBuffers(4);

IndicatorShortName("MA3_54");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3) を設定します。

SetIndexArrow(0,242); // 下方向 226 234 242

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

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3) を設定します。

SetIndexArrow(1,241); //上 225 233 241

SetIndexBuffer(1,b3);

// これらのバッファはプロットされず、単に矢印を決定するために使用されます。

SetIndexBuffer (2,Buffer1).SetIndexBuffer(2,Buffer1);。

SetIndexBuffer (3,Buffer2)。

//----

return(0);

}

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

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

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

int deinit()

{

//----

return(0);

}

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

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

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

int start()

{

int i, counted_bars=IndicatorCounted();

double MA5,MA34;

int limit=Bars-counted_bars;

Print(" print limit = ", limit);

if(counted_bars>0) limit++;

// メインライン

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

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

Buffer1=MA5-MA34。

}

// シグナルライン

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

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// 矢印

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

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = High+10*Point;

if(Buffer1 Buffer2)

b3 = Low-10*Point。

}

//----

return(0);

}

この指標を元にEAを作成する方法を教えてください。 画面に矢印が表示された時にEAが自動でポジションを入力するのですが、できますか? 勉強熱心なのでご指導ください =^_^= よろしくお願いします。

 

良い参考

liew_stanley:
#プロパティ indicator_chart_window

#プロパティ indicator_buffers 2

.........................................勉強熱心な私に教えてください =^_^=

このガイドを参照してください本当に良い材料MQL4チュートリアル

 

インディスはこのような感じです。

ここに上記の矢印の信号があります、EAのコーディングで私を導くために誰かを必要とする

誰かありがとうございます =^_^=

ファイル:
untitled.jpg  80 kb
 

誰かこれを簡単なEAにコード化するのを手伝ってくれませんか?

こんにちは、誰かこのインディスをEAにコード化するのを手伝ってくれませんか?矢印が画面に表示されたときにポジションを入力する簡単なEAだけですが、簡単なEAで私を助けることができれば非常に感謝します。

#プロパティ indicator_chart_window

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

#property indicator_color1 ホワイト

#property indicator_color2 ホワイト

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

extern int Signal.period = 5;

//---- バッファ

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

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

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

int init()

{

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

// カウントに使用する2つの追加バッファ

IndicatorBuffers(4);

IndicatorShortName("Elliott Wave Oscillator");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3) を設定します。

SetIndexArrow(0,242); // 下 226 234 242

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

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3) を設定します。

SetIndexArrow(1,241); //上 225 233 241

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

//

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

SetIndexBuffer(3,Buffer2)を設定します。

//----

return(0);

}

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

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

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

int deinit()

{

//

//----

return(0);

}

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

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

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

int start()

{

int i, counted_bars=IndicatorCounted();

double MA5,MA34;

int limit=Bars-counted_bars;

Print(" print limit = ", limit);

if(counted_bars>0) limit++;

// メインライン

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

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

Buffer1=MA5-MA34。

}

// シグナルライン

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

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// 矢印

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

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = High+10*Point;

if(Buffer1 Buffer2)

b3 = Low-10*Point。

}

//----

return(0);

}

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

 

マルチオーダーコード?

最大ロットの壁にぶつかったときに、複数の注文を取引するための良いコードをお持ちの方はいらっしゃいますか?

IEはブローカーが5のロットを許可し、あなたは10を取引したいので、関数は、代わりに2×5ロットの注文を取引します。

私はここで単純なループ以上のものを探しています。問題は、単純なループが常に完全に完了するわけではなく、部分的な注文を開いたままにしておくことができることです。

 

OrderModifyエラー1を解除する方法

こんにちは。

OrderModifyのエラー1が出るのですが、修正する前のデータが違うと制御しても、いつも出てしまいますdoublelenormalizeも試したのですが、うまくいきません......。

これはコードです。

if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

if (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)

{

Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green).Vresult = OrderTicket(),OrderOpenPrice(),OrderOpenPrice() + BreakEvenShift*VPoint.0,Green);

何か提案はありますか?

ありがとうございます。

 
liew_stanley:
こんにちは、どなたかこのインディスをEAにコード化するのを手伝っていただけませんか?ポジションを入力する単純なEAのみ //+------------+

これらのエアロショーは2 MovingAverage corssingすなわち5-34で、あなたは多くのEAs "MA's Cross EA "を検索し、うまくいけば、あなたは1つを見つけることができました。

 

Alert Frequency(アラート頻度)を設定するには?

MACDの クロスオーバーを画面に表示させたいのですが。下記は私のコードですが、アラートは数分おきに表示され続けています。

どうすれば、1時間に1回だけアラートを表示させることができますか?または、1つのバーに1つのアラート?

int start()

{

文字列MACD1=""。

color colt9;

double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);

double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0); double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN,0);

double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1)です。

double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1)です。

if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; } }.

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND"; colt9=Red; }.

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NEW UP CROSSING"; colt9=LimeGreen; } { (MACDM_S11 && MACDS_S10) { MACD1="NEW UP CROSSING"; colt9=Blue

if ((MACDM_S11 MACDS_S10)) { MACD1="NEW DOWN CROSSING"; colt9=Red; } {MACD1="NEW DOWN CROSSING"; colt9=Red

文字列 MACD2="";

colt14を色付けします。

double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);

double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0)です。

double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1)です。

double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1)です。

if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; } }.

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND"; colt14=Red; }.

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NEW UP CROSSING"; colt14=LimeGreen; } { MACD2="NEW UP CROSSING"; colt14=LimeGREEN

if ((MACDM_L11 MACDS_L10)) { MACD2="NEW DOWN CROSSING"; colt14=Red; }.

if(MACD1=="NEW UP CROSSING"&&MACD2=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD1=="NEW DOWN CROSSING"&&MACD2=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN DOWNTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NEW UP CROSSING"&&MACD1=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO UPTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS)");

if(MACD2=="NEW DOWN CROSSING"&&MACD1=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO DOWNTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS)");

return(0);

}

 

何組で?