コーディングの方法は? - ページ 84 1...777879808182838485868788899091...347 新しいコメント BigBe 2008.04.19 17:16 #831 100均で買う・売る ザマーニブです。 書いてあることは理解できるのですが、利益で決済するのがよくわかりません。 これはHedgeタイプのEAに見えますね。 FX-tsdにはそういうのがいくつかあります。 マーチンゲールである必要はありません。 Big Be ralphronnquist 2008.04.19 23:16 #832 european: どなたか、TakeProfit値で注文をクローズする方法について、アイデアやコードを教えてください。MT4のOrderSend()関数内の'TakeProfit'は、ロング/バイオーダーではうまく機能しますが、ショート/セルオーダーではなぜかいつもうまくいきません。 注文のTakeProfitの値を現在の価格と比較するコードをいくつか書きましたが、正しく動作しません。 何かアイデアはありますか? ユーロ ロングは「買値」で決済され、ショートは「売値」で決済されます。 zamanib 2008.04.20 04:45 #833 Big Be: Zamanib。書いてあることは理解できるのですが、利益で閉じるというのがよくわかりません。 これはHedgeタイプのEAに見えますね。 FX-tsdにはそういうのがいくつかあります。 マーチンゲールである必要はありません。 ビッグベー 私は市場が上下の波で動くのを見るいくつかの週は、上下の2サイクルを得る私はそれがトレンドのときに別のstrateyを持っています。 ヘッジEAに私を指示してください。私はそれの多くを見る。 しかし、何excatly私は何をしたいではありません。 european 2008.04.20 23:46 #834 コードやプラットフォームの問題? ralph.ronnquist: ロングは買値で、ショートは売値で決済しています。 ご返答ありがとうございます。 何らかの理由で私のコードは動作しません。 if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) { (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) if (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) CloseOrder(orderNo); if (OrderType() == OP_SELL && Close[0] <= OrderTakeProfit()) CloseOrder(orderNo); } となります。 アドバイスを頂ければ幸いです。 ユーロ ralphronnquist 2008.04.21 00:38 #835 european: ご返答ありがとうございました。なぜか私のコードはうまくいきません。 if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) { if (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) CloseOrder(orderNo); if (OrderType() == OP_SELL && Close[0] <= OrderTakeProfit()) CloseOrder(orderNo); } [/PHP] I would be grateful for advice. euro そうです。「Close[0]」は「買値」であり、OP_SELLがクローズされる価格ではありません。OP_SELLは、"bid "価格より数pips(別名スプレッド)高い "ask "価格に対してクローズされるのです。 EAを実行すると、「ビッド」価格は「ビッド」という変数で、「アスク」価格は「アスク」という変数で利用できます。ですから、コードスニペットは次のようにするのがよいでしょう。 [PHP]if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) { (OrderType() ==true) if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo); if (OrderType() == OP_SELL && Ask <= OrderTakeProfit()) CloseOrder(orderNo);}となります。 leialex 2008.04.21 06:54 #836 コードで助けてください、ありがとうございます... こんにちは。 私はEAを書くのが初めてです、私は以下のことを試していましたが、 "OrderModify関数の無効なチケット "のエラーが発生しました、誰か親切に見て、助けてもらえますか? よろしくお願いします。 void ModifyHedgeSL(int SL) { (ヘッジSLの変更) if (SL<1) return; bool bres; double sl,openadj; if (lastopenbuy==1 && lastopensell==0) {openadj=Ask-Bid;} else {openadj=0;}. for (int i = 0; i < OrdersTotal(); i++) { { オーダーセレクト(i, SERIES) オーダーセレクト(i, SELECT_BY_POS,MODE_TRADES); if ( OrderSymbol() == Symbol() || OrderMagicNumber() == expertId && OrderType() == OP_BUY ) ) { sl = GetLastLongOpenPrice()-openadj-SL*Point; bres = OrderModify (OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, White); if (bres) Print("Modifing Hedge BUY completed"); if (!bres) Print("Error Modifying Hedge BUY order :",ErrorDescription(GetLastError()))。 if ( OrderSymbol() == Symbol() || OrderMagicNumber() == expertId && OrderType() == OP_SELL ) ) { sl = GetLastShortOpenPrice()-openadj+SL*Point; bres = OrderModify (OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, Gold); if (bres) Print("Modifing Hedge SELL completed"); if (!bres) Print("Error Modifying HedgeSELL order:",ErrorDescription(GetLastError()))。 } } を返します。 } ダブルGetLastLongOpenPrice() { { int ord; double LastLongOpenPrice=0; //---- for (int i = 0; i <= OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() ==expertId && OrderType() == OP_BUY) { LastLongOpenPrice=OrderOpenPrice()。 } if (LastLongOpenPrice>0) {return(LastLongOpenPrice);}. else {return(-1);}。 } How to code? 出口戦略ステップ・ストップとトレーリング・ストップの比較 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Hiu Yan Li 2008.04.21 08:34 #837 SLがヒットしたときの買い/売り注文のコード化方法 例えば、私がEUR/JPYを164.30で1ロット買い、164.00でSLを設定したとします。 SLがヒットしたら、同じ価格164.30で、同じSLを164とし、さらにロットを1.5とした買い注文をもう一回出します。そして、SLが再びヒットしたら、同じ価格で同じSLで2ロットの買い注文をもう一回出します。 このためのコードはありますか?ありがとうございます。 Sergey Golubev 2008.04.21 08:51 #838 boostrade: 例えば、EUR/JPYを164.30で1ロット買い、164.00でSLするとします。がヒットしたら、同じ価格、164.30で、同じSLで、さらにロットを増やして1.5と言う買い注文を出します。そして、SLが再びヒットしたら、同じ価格で同じSLで2ロットの買い注文をもう一回出します。 これのための任意のコードはありますか?ありがとうございました。 フランクEAについてこのスレッドを見てくださいhttps://www.mql5.com/en/forum 私はそれがあなたが必要とするものであると思いますし、あなたは例としてそれを使用することができます。 Hiu Yan Li 2008.04.21 10:41 #839 OK newdigital: フランクEAについてこのスレッドを見てくださいhttps://www.mql5.com/en/forum 私は それがあなたが必要とするものであるか、またはあなたが例としてそれを使用することができると思います。 tks a lot newdigital, any questions i'll place here. tks again. european 2008.04.21 11:03 #840 TP問題 if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) { if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo); if (OrderType() == OP_SELL && Ask <= OrderTakeProfit()) CloseOrder(orderNo); } Ralphです。 ご覧のように、私は別の関数CloseOrder()を呼び出し、あなたが勧めるように'Ask'と'Bid'を使用していましたが、問題はまだ存在しています。 // 関数 CloseOrder ************************************************************************************************************************************************************************************ bool CloseOrder(int orderT) { (ブールクローズオーダー) double sA; if (OrderSelect(orderT, SELECT_BY_TICKET)==true)の場合{。 if (OrderType() == OP_BUY) sA = Bid; else sA = Ask; bool bClosed = OrderClose(orderT,OrderLots(),sA,0,CLR_NONE); if (bClosed == 1) { { { pTrades = 0; return pTrades = 0; return(1); }. else return(0); }} ********************************************************** 私は、TPがヒットしたら取引が終了することを保証してくれると思っていたのですが、そうではありませんでした。104.03でショート注文が出され、TPが103.79でした。 ファイル: tp_failed.jpg 32 kb How to code? コーディングのヘルプ [アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. 1...777879808182838485868788899091...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
100均で買う・売る
ザマーニブです。
書いてあることは理解できるのですが、利益で決済するのがよくわかりません。
これはHedgeタイプのEAに見えますね。
FX-tsdにはそういうのがいくつかあります。
マーチンゲールである必要はありません。
Big Be
どなたか、TakeProfit値で注文をクローズする方法について、アイデアやコードを教えてください。
MT4のOrderSend()関数内の'TakeProfit'は、ロング/バイオーダーではうまく機能しますが、ショート/セルオーダーではなぜかいつもうまくいきません。
注文のTakeProfitの値を現在の価格と比較するコードをいくつか書きましたが、正しく動作しません。 何かアイデアはありますか?
ユーロロングは「買値」で決済され、ショートは「売値」で決済されます。
Zamanib。
書いてあることは理解できるのですが、利益で閉じるというのがよくわかりません。
これはHedgeタイプのEAに見えますね。
FX-tsdにはそういうのがいくつかあります。
マーチンゲールである必要はありません。
ビッグベー私は市場が上下の波で動くのを見るいくつかの週は、上下の2サイクルを得る私はそれがトレンドのときに別のstrateyを持っています。
ヘッジEAに私を指示してください。私はそれの多くを見る。 しかし、何excatly私は何をしたいではありません。
コードやプラットフォームの問題?
ロングは買値で、ショートは売値で決済しています。
ご返答ありがとうございます。
何らかの理由で私のコードは動作しません。
if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) { (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit())
if (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) CloseOrder(orderNo);
if (OrderType() == OP_SELL && Close[0] <= OrderTakeProfit()) CloseOrder(orderNo); } となります。
アドバイスを頂ければ幸いです。
ユーロ
ご返答ありがとうございました。
なぜか私のコードはうまくいきません。
if (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) CloseOrder(orderNo);
if (OrderType() == OP_SELL && Close[0] <= OrderTakeProfit()) CloseOrder(orderNo); }
[/PHP]
I would be grateful for advice.
euroそうです。「Close[0]」は「買値」であり、OP_SELLがクローズされる価格ではありません。OP_SELLは、"bid "価格より数pips(別名スプレッド)高い "ask "価格に対してクローズされるのです。
EAを実行すると、「ビッド」価格は「ビッド」という変数で、「アスク」価格は「アスク」という変数で利用できます。ですから、コードスニペットは次のようにするのがよいでしょう。
[PHP]if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) { (OrderType() ==true)
if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo);
if (OrderType() == OP_SELL && Ask <= OrderTakeProfit()) CloseOrder(orderNo);}となります。
コードで助けてください、ありがとうございます...
こんにちは。
私はEAを書くのが初めてです、私は以下のことを試していましたが、 "OrderModify関数の無効なチケット "のエラーが発生しました、誰か親切に見て、助けてもらえますか? よろしくお願いします。
void ModifyHedgeSL(int SL) { (ヘッジSLの変更)
if (SL<1) return;
bool bres;
double sl,openadj;
if (lastopenbuy==1 && lastopensell==0) {openadj=Ask-Bid;} else {openadj=0;}.
for (int i = 0; i < OrdersTotal(); i++) { { オーダーセレクト(i, SERIES)
オーダーセレクト(i, SELECT_BY_POS,MODE_TRADES);
if ( OrderSymbol() == Symbol() || OrderMagicNumber() == expertId && OrderType() == OP_BUY ) )
{
sl = GetLastLongOpenPrice()-openadj-SL*Point;
bres = OrderModify (OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, White);
if (bres) Print("Modifing Hedge BUY completed");
if (!bres) Print("Error Modifying Hedge BUY order :",ErrorDescription(GetLastError()))。
if ( OrderSymbol() == Symbol() || OrderMagicNumber() == expertId && OrderType() == OP_SELL ) )
{
sl = GetLastShortOpenPrice()-openadj+SL*Point;
bres = OrderModify (OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, Gold);
if (bres) Print("Modifing Hedge SELL completed");
if (!bres) Print("Error Modifying HedgeSELL order:",ErrorDescription(GetLastError()))。
}
}
を返します。
}
ダブルGetLastLongOpenPrice() { {
int ord;
double LastLongOpenPrice=0;
//----
for (int i = 0; i <= OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() ==expertId && OrderType() == OP_BUY)
{
LastLongOpenPrice=OrderOpenPrice()。
}
if (LastLongOpenPrice>0) {return(LastLongOpenPrice);}.
else {return(-1);}。
}
SLがヒットしたときの買い/売り注文のコード化方法
例えば、私がEUR/JPYを164.30で1ロット買い、164.00でSLを設定したとします。
SLがヒットしたら、同じ価格164.30で、同じSLを164とし、さらにロットを1.5とした買い注文をもう一回出します。そして、SLが再びヒットしたら、同じ価格で同じSLで2ロットの買い注文をもう一回出します。
このためのコードはありますか?ありがとうございます。
例えば、EUR/JPYを164.30で1ロット買い、164.00でSLするとします。
がヒットしたら、同じ価格、164.30で、同じSLで、さらにロットを増やして1.5と言う買い注文を出します。そして、SLが再びヒットしたら、同じ価格で同じSLで2ロットの買い注文をもう一回出します。
これのための任意のコードはありますか?ありがとうございました。フランクEAについてこのスレッドを見てくださいhttps://www.mql5.com/en/forum
私はそれがあなたが必要とするものであると思いますし、あなたは例としてそれを使用することができます。
OK
フランクEAについてこのスレッドを見てくださいhttps://www.mql5.com/en/forum 私は それがあなたが必要とするものであるか、またはあなたが例としてそれを使用することができると思います。
tks a lot newdigital, any questions i'll place here. tks again.
TP問題
if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo);
if (OrderType() == OP_SELL && Ask <= OrderTakeProfit()) CloseOrder(orderNo); }
Ralphです。
ご覧のように、私は別の関数CloseOrder()を呼び出し、あなたが勧めるように'Ask'と'Bid'を使用していましたが、問題はまだ存在しています。
// 関数 CloseOrder ************************************************************************************************************************************************************************************
bool CloseOrder(int orderT) { (ブールクローズオーダー)
double sA;
if (OrderSelect(orderT, SELECT_BY_TICKET)==true)の場合{。
if (OrderType() == OP_BUY) sA = Bid;
else sA = Ask;
bool bClosed = OrderClose(orderT,OrderLots(),sA,0,CLR_NONE);
if (bClosed == 1) { { { pTrades = 0; return
pTrades = 0; return(1); }.
else return(0); }}
**********************************************************
私は、TPがヒットしたら取引が終了することを保証してくれると思っていたのですが、そうではありませんでした。104.03でショート注文が出され、TPが103.79でした。