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

 

ありがとうございます。どちらの提案も、私が取り組んでいたものより良いものでしょう。

 

誰か助けてください・・・。

こんにちは...

私はここに誰かがこれをコーディングする方法を私を助けることができると思います。これはmartiangle EAと私は何をしたいです。

1 .2層目のポストが開いたとき、1層目のターゲットポイントを2層目のターゲットポイントに移動させたいです。

2.ピップスロックが必要です。1層目が開いて、例えば15ピップス(TP32)の利益を得た場合、EAはSL価格(例えば5ピップス)でロックをかけますので、価格が10ピップ反転するとそのポストは5ピップスの利益で自動的にクローズできます。

私は私の悪いenglish.Hopeのために非常に申し訳ありませんが、誰かがこのEAでコードを置くために私を助けることができます。ありがとうございました。

マティアングル_rsi_.mq4

聯絡

本当に助けが必要な人

ファイル:
 

コメントについて

私は、画面に表示するコメントを設定しようとしていますが、あまりうまくいっていません。

私は、単一のペアのピップカウントを取得するために管理しているが、私は複数のペアの照合合計を表示するように見えることはできません。

どのようなヘルプも素晴らしいでしょう

これは、そのコードの例です。

//================ FUNCTION getPipValue

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits))

NormalizeDouble(Ask,Digits));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point*co;

return(val);

}

//== 関数終了

int getSpread()

{

int spread=MarketInfo(Symbol(),MODE_SPREAD).return(spread);etc;

return(spread)。

}

//=========================== FUNCTION getOpenOrders

void getOpenOrders()

{

int nsl, nsd;

文字列 mngMagic, trailon;

int totalorders = OrdersTotal();

for(int j=0; j<totalorders;j++)。

{

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

if((OrderType() == OP_BUY || OrderType() == OP_SELL) && (OrderSymbol() == Symbol) )

OrderSymbol() == Symbol()&&(MagicNumber==0 || MagicNumber ==)

OrderMagicNumber())

{

double val=getPipValue(OrderOpenPrice(),OrderType())。

//int val = OrderProfit()/(OrderLots()*10);

}

if(MagicNumber == 0)

mngMagic = "すべての "+Symbol()+"トレード.";

さもなくば

mngMagic = "マジックナンバーが "+MagicNumber "の取引。

//RefreshRates();

Comment("残高:",AccountBalance(),",Account Equity:",AccountEquity(),", Account Profit:",AccountProfit(), "Order Open: ",OrderOpenPrice(),

"ⅷピップ数:", val,

"ⅳMy Account Cutoff Limit: ",Open_Loss_To_CloseTrades,

"ⅳMnManaging:", mngMagic);

乾杯

 

現在の注文の pips 値は、次のようにして得ることができます。

( OrderClosePrice() - OrderOpenPrice() ) / MarketInfo( OrderSymbol(), MODE_POINT )

もし、"bid" と "ask" を使いたい場合は、注文記号に 関連したもの、すなわち、MarketInfo( OrderSymbol(), MODE_BID ) と MarketInfo( OrderSymbol(), MODE_ASK ) も使う必要がある。

 

RALPH.RONNQUIST

ギデー

私はそれを使用しましたが、それは1つのペアのためにカウントされ、すべてのペアの合計ではありませんコードをありがとうございました。

私は様々なシナリオで実験してきたが、まだ動作していない

私は5つのペアで実行される3つのポジションを開くEAを持っている私は、各ペアのピップカウントを見ることができますが、集団ではありません。

 
Beno:
RALPH.RONNQUIST

Gidday

ありがとうございます。

私は様々なシナリオで実験されているが、まだ動作しません

私は5つのペアで実行される3つのポジションを開くEAを持っています私は各ペアのピップカウントを見ることができますが、集団ではありません。

さて、あなたはグローバル変数に精通している場合、あなたは各シンボルによって参照される各ペアのピップス情報を格納するためにそれらを使用することができます。総pips値を参照する別のグローバル変数を作成し、この特定のグローバル変数を呼び出し、pipsが増加するとそれを更新取得し、それを格納します。グローバル変数はMT4のメモリに格納されているので、各EAからアクセスすることができます。

もし必要であれば、私がコーディングのお手伝いをします。

 

Gidday ShahJB

私は前にコードでグローバル変数を見たことがあるが、私はそれらを経験したことがないので、はい、私はこれをコーディングするためにあなたの助けを受け入れたいと思いますそのように私は気が狂いそうです。

 
Beno:
Gidday ShahJB 私は前にコードでグローバル変数を見たことがあるが、私はそれを経験したゼロだったので、はい、私はこれをコーディングするためにあなたの助けを受け入れたいと思いますそのように私を狂わせるように

早速、次のようなコードを書いてみました。まず、このコードを追加してみてください。試してみて、もし失敗したら私に連絡してください。私は少し睡眠を取る必要があります。

文字列 val_old_string = "val_old" + Symbol();

int val_old = GlobalVariableGet(val_old_string);

if(val != val_old)

{

int pips_increment_decrement;

int current_total_pips;

string counter = "ピップスカウンター";

double pips_counter = GlobalVariableGet(counter);

if (val>val_old)

{

pips_increment_decrement = val - val_old;

current_total_pips = pips_increment_decrement + pips_counter;

GlobalVariableSet(counter, current_total_pips);

GlobalVariableSet(val_old_string, val);

}

さもなくば

{

pips_increment_decrement = val_old - val;

current_total_pips = pips_counter - pips_increment_decrement;

GlobalVariableSet(counter, current_total_pips);

GlobalVariableSet(val_old_string, val);

}

}

 

なぜ動かないのか?

こんにちは。

私はプログラミングの完全な初心者です。 このサイトの投稿や学習リソースのおかげで、いくつかのEAを構築する勇気が湧いてきました。そのうちの1つはトリガーの1つとしてLguerreを使用します(このサイトを参考にしました ;Expert Advisor Builder for MetaTrader 4)。私のEAの問題は、トリガーがヒットしたときに買い注文をオープンしないことです。前述のサイトを使っていくつかのEAを作りましたが、それらはロングとショートのポジションの注文をうまく実行しました(EAはRSIを使用しました)。添付のEA、3-28を見て、何が間違っているのか教えてください...取引が実行される前にヒットするレベルのフォーマットを間違って使っているのでしょうか?Laguerreは追加のパラメータが必要ですか?

このために恥ずかしいほどの時間を費やしてしまい、あきらめる寸前です...どんな助けでも大歓迎です!!!!

答えは見つかったようです...しかし、なぜ私のEAでラゲールを掛ける必要があるのでしょうか?

ファイル:
3-31.mq4  10 kb
削除済み  

ポジションを閉じるときに問題が発生しました。助けてください

解決方法が分からない問題が発生しました。私のプログラムはいくつかのオープンオーダーを持っており、それらをすべて一緒に閉じますが、時々、いくつかのオーダーが満たされていないと思うので、それらが満たされるまで待ち続け、私のプログラムがロックされます。すべての未決済注文を閉じるための最良の方法は何でしょうか?よろしくお願いします。

以下はそのコードです。

int OrdersTotalLong()

{

int order_total = 0;

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

if (OrderType() == OP_BUY)

order_total++;

}

return(order_total);

int MaxLongOrder()

{

int order = 0;

double lotsbuyed = 0;

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

if ((OrderType() == OP_BUY) && (OrderLots() > lotsbuyed))

{

lotsbuyed = OrderLots();

order = i;

}

}

return(order)。

}

int CloseLong()

{

while (OrdersTotalLong() > 0) //開いている注文がなくなるまで(すべて閉じる)。

{

if (OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) continue;

OrderClose(OrderTicket(),OrderLots(), Bid, 3, Green);

}

return(0);