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

 
denis68:
matrixebiz この2行を削除するとはどういう意味でしょうか。また、どのようにすればよいのでしょうか。

MetaEditorでAccelerator.mq4を開き(Indicatorsフォルダにあります)、これらの2行の前に//を置き、新しい名前AcceleratorMod.mq4として保存し、コンパイルをクリックしてください。

ファイル:
 
hiachiever:
いいえ、それは正しくありません。

つまり、forループの最後のループで、「if (i == 1) qqeacross = True;」というチェックが行われます。最終的には、qqeacrossが発生した場合、出力はtrueになります。

唯一の問題は、以前のループでqqeacrossがtrueに設定されていた場合である。これを解決するには、forループの前にqqeacross = false;を設定する必要がある。こうすることで、もしqqeacross = trueが、直前に終了したループによって設定されたことを確認することができます。

乾杯。

ハイハイ

つまり、「if (i == 1) qqeacross = True;」と記述した後に、i=4(カウントダウンのため)になっても、qqeacross = Trueとなるのですか?

 

hiachieverさんありがとうございます。

hiachiever:
これを行う方法は、グローバルスコープ(つまりinitの前)で変数(Vriable)を作成することです。

int BarCount;

int init ()

そして、ストップロスのコードで以下を使用します。

if (BarCount<Bars)

{

SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0))。

StopLossBars++;

BarCount=Bars;

}

これは、新しいバーごとにStopLossBarsを1ずつ増加させます。

コードへの唯一の追加事項は、新しい取引が開始されたときに「StopLossBars」を元のデフォルト値にリセットすることです。

乾杯。

ヒャッハー

ありがとうございます、hiachiever さん、とても親切にしていただきました。

あなたのコードがどのように機能するかは理解しており、私のEA にコピーすることができると確信しています。 しかし、StopLossBarsをデフォルトに戻す方法がよくわかりません。 これは、EAの最後にあるロングまたはショートのためのコードです。

void goLong()

{

int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green);

if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);

if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");

Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");

}

void goShort()

{

int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red);

if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);

if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");

Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");

}

double stopLoss(int ordertype)

StopLossBarsをリセットするためのコードを教えていただけませんか?

本当にありがとうございます。

 

matrixebiz 私のEAに次の行を追加したところ、コンパイルできなくなりました。

double ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1);

double ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1)です。

double ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2);

double ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2)。

bool acbuy = ac2==0 && ac11==0; // 赤がライムに変わる。

bool acsell = ac1==0 && ac22==0; // ライムがレッドに変更されます。

とすると、12個のエラーが発生します。AC変数が定義されていません。

というエラーが出てしまいます。

 

StopLossBarsはグローバル変数で、ユーザーの入力によって設定されるのでしょう?

私ならこのようにします。

ユーザー入力変数をgStopLossBarsのようなものにし、init関数で それをローカル変数に代入します...。

StopLossBars = gStopLossBars;

それから、売買関数で同じ代入を使用してStopLossBarsをリセットします。

お分かりいただけましたか?

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

ラックス

 

Ac+ao+psar

皆さん、こんにちは。

どなたか、AC+AO+PSARを組み合わせて、alert/email付きの新しいインジケータにすることはできませんか?PMをお願いします。よろしくお願いします。

 
luxinterior:
StopLossBarsはグローバル変数で、ユーザー入力で設定されるのですよね?

私なら、こんな風にします。

ユーザー入力変数にgStopLossBarsのようなものを指定し、init関数でそれをローカル変数に代入する...

StopLossBars = gStopLossBars;

それから、売買関数で同じ代入を使用してStopLossBarsをリセットします。

お分かりいただけましたか?

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

ラックス

完璧に理解できました。 ありがとうございました。

 

新しいローソク足が始まるのを検知するにはどうしたらいいですか?

どなたかアドバイスをお願いします。新しいバーが始まったときに保留中の注文を 出すEAを作るにはどうしたらよいでしょうか?

感謝

 
:: こんにちは!このインジケーターの 中のコードをチェックしてみてください。(これはEAではありません。)
tcl:
新しいバーが始まるときに保留中の注文を作るEAを作るにはどうしたらいいでしょうか? ありがとうございます。
 

誰かこのループとループを止められないか?

void BEM ()

{

int pips;

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

{

OrderSelect(k, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic))

{

pips = (Bid - OrderOpenPrice())/Point;

if ((pips >= BE) && (OrderStopLoss() < OrderOpenPrice()))

{

OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()+ 12*Point, OrderTakeProfit (), 0, LightBlue)。

}

if(OrderType()==OP_SELL && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic))

{

pips = (OrderOpenPrice() - Ask)/Point;

if ((pips >= BE) && (OrderStopLoss() > OrderOpenPrice()))

{

OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()- 12*Point, OrderTakeProfit (), 0, Pink)を実行します。

}

}

}

}