コーディングの方法は? - ページ 163 1...156157158159160161162163164165166167168169170...347 新しいコメント Orionis 2009.02.27 20:39 #1621 iCCIに関する質問 MQL4は初めてなのですが、以前のCCI値を取得しようとしています。iCCI関数を Shiftの値を1にして使ってみましたが、以前の値を得ることができません。現在の値を変数に保存せずに、どのようにすればいいのでしょうか?CCIの方向性を判断したいのです。 よろしくお願いします。 KennyRogers 2009.02.27 21:08 #1622 このコードはティックベースなので、もしその時間にティックがなければ、コードは時間のチェックを ミスすることになります。何らかのループを継続的に走らせないと正確な秒にならないと思うのですが。 coach3131 2009.02.28 23:02 #1623 EA編集のヘルプ 私はこれを理解しようとしている...あなたは助けてくださいすることができますか? MBトレーディング - 株式 オプション 先物 外国為替 オンライン割引取引 私はこれを変更しました。 OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor).を変更しました。 return(0); へ。 int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slippage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor); Sleep(1500); OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor); =================================== ====== こんなエラーが出ます。 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify 関数のための無効なチケットです。 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend エラー 131 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051 ===================== How to code? コーディングのヘルプ 10ポイント 3.mq4 cockeyedcowboy 2009.03.01 15:42 #1624 coach3131: これを理解しようとしているのですが、助けていただけますか?MBトレーディング - 株式 オプション 先物 外国為替 オンライン割引取引 これを変更しました。 OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor).を変更しました。 return(0); へ。 int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slippage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor); Sleep(1500); OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor); =================================== ====== こんなエラーが出ます。 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify 関数のための無効なチケットです。 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend エラー 131 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051 ===================== あなたの問題は、注文送信ステートメントのロットサイズ(数量)にあります。これは、エラーのため -1 を返します。次に、ticket 変数の戻り値をチェックして、ordermodify ルーチンを呼び出す前に、エラー・フラグが含まれていないことを確認する必要があります。 ケイト Sam 2009.03.05 21:20 #1625 EA マックスポジション このEAに最大ポジションを追加することはできますか? または1つのポジションのみを実行させることができますか? 事前にありがとうございます ファイル: reversal_ea_mt4_eur_jpy_works_fine.mq4 6 kb Roger09 2009.03.06 20:51 #1626 次のようにします。 MathAbs(NormalizeDouble(Bid,4)-NormalizeDouble(pivot,4))<Delta*Point, ここで、デルタ=2...5 MiniMe 2009.03.07 13:02 #1627 jdun: 誰かストップロスとTPのコードを教えてください。このEAにそれを追加する必要があります。 この隠されたSLとTP int TakeProfit=20; // 20 pips take profit int StopLoss =40; // 40 pips stoploss int Slippage = 3; int MagicNumber=1; int i; int start(){ //----- exit @ TP if((ScanTrades()>=1)&& (ProfitInPips()>=TakeProfit)){ //----- This part will close all open orders and delete pending trades for(i = OrdersTotal()-1; i >=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber ) { if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum); if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum); if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket()); if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket()); } } } //------exit @ SL if((ScanTrades()>=1)&& (ProfitInPips()<= -StopLoss)){ //----- This part will close all open orders and delete pending trades for(i = OrdersTotal()-1; i >=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber ) { if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum); if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum); if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket()); if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket()); } } } return (0); } //----------- Call functions int ScanTrades() { int Tot = OrdersTotal(); int Numb = 0; for(int cnt=0; cnt<=Tot-1; cnt++) { OrderSelect(cnt, SELECT_BY_POS); if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) Numb++; } return(Numb); } double ProfitInPips() { RefreshRates(); double Prof=0; int i; int totalOrders=OrdersTotal(); for(i=0;i<totalOrders;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber) { if(OrderType()==0) { Prof+=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT); } if(OrderType()==1) { Prof+=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT); } } } return(Prof); } [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 How to code? 10ポイント 3.mq4 MiniMe 2009.03.07 13:07 #1628 いくつかの買い注文と売り注文 があるとします。 私は何をしたいです。 - すべての取引「バスケット」を未決済取引の損益分岐点価格より5ピップス高い価格で終了させる。 最初のループでやろうとしていることは、オープントレード+スワップの値を求め、それをpipsに変換することです。 私はいくつかのアイデアを試してみましたが、私は行き止まりに達している、私は問題が最初のfor文であることを知っているが、私はそれを解決することはできません、任意のヘルプは非常に充当されます。 SymbolPL = 0; OrdLots = 0; Equity = 0; MinPro = 5; for(i = 0; i < OrdersTotal(); i++) {OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {if(OrderType() == OP_BUY) OrdLots += OrderLots(); if(OrderType() == OP_SELL) OrdLots -= OrderLots(); Equity += OrderProfit() + OrderSwap(); } } MinPro= MathRound (MathAbs(Equity /OrdLots)+MinPro); //--- Count the open trades int i; int count=0; for(i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber && OrderType()<2) { count++; } } //--- find the profit in pips of the open trades RefreshRates(); double profits=0,openPrice=0,points=0; string sym=""; int i; int totalOrders=OrdersTotal(); for(i=0;i<totalOrders;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber) { sym=OrderSymbol(); openPrice=OrderOpenPrice(); if(OrderType()==0) { profits+=(MarketInfo(sym,MODE_BID)-openPrice)/MarketInfo(sym,MODE_POINT); } if(OrderType()==1) { profits+=(OrderOpenPrice()-MarketInfo(sym,MODE_ASK))/MarketInfo(sym,MODE_POINT); } } } //--- Close when the open trades are 5 pips more than the breakeven price if (count>1 && profits>MinPro ) { for(i = OrdersTotal()-1; i >=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber ) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Plum); } } } How to code? アスク! MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 ralphronnquist 2009.03.07 20:28 #1629 と計算される「equity_per_lotpoint」定数を使えばいいと思います。 double equity_per_lotpoint = MarketInfo( Symbol(), MODE_TICKVALUE ) / MarketInfo( Symbol(), MODE_TICKSIZE ); [/PHP] and then you'd have what you need after the first loop, with: [PHP]if ( Equity > 5 * equity_per_lotpoint * MathAbs( OrdLots ) ) { ... MiniMe 2009.03.07 21:02 #1630 ラルフさん、ありがとうございます。でも、スワップがなくなってしまうので、スワップ損益を注文の終値に含めたいのです。 1...156157158159160161162163164165166167168169170...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
iCCIに関する質問
MQL4は初めてなのですが、以前のCCI値を取得しようとしています。iCCI関数を Shiftの値を1にして使ってみましたが、以前の値を得ることができません。現在の値を変数に保存せずに、どのようにすればいいのでしょうか?CCIの方向性を判断したいのです。
よろしくお願いします。
このコードはティックベースなので、もしその時間にティックがなければ、コードは時間のチェックを ミスすることになります。何らかのループを継続的に走らせないと正確な秒にならないと思うのですが。
EA編集のヘルプ
私はこれを理解しようとしている...あなたは助けてくださいすることができますか?
MBトレーディング - 株式 オプション 先物 外国為替 オンライン割引取引
私はこれを変更しました。
OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor).を変更しました。
return(0);
へ。
int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slippage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor);
Sleep(1500);
OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor);
=================================== ======
こんなエラーが出ます。
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify 関数のための無効なチケットです。
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend エラー 131
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051
=====================
これを理解しようとしているのですが、助けていただけますか?
MBトレーディング - 株式 オプション 先物 外国為替 オンライン割引取引
これを変更しました。
OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor).を変更しました。
return(0);
へ。
int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slippage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor);
Sleep(1500);
OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor);
=================================== ======
こんなエラーが出ます。
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify 関数のための無効なチケットです。
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend エラー 131
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051
=====================あなたの問題は、注文送信ステートメントのロットサイズ(数量)にあります。これは、エラーのため -1 を返します。次に、ticket 変数の戻り値をチェックして、ordermodify ルーチンを呼び出す前に、エラー・フラグが含まれていないことを確認する必要があります。
ケイト
EA マックスポジション
このEAに最大ポジションを追加することはできますか?
または1つのポジションのみを実行させることができますか?
事前にありがとうございます
次のようにします。
MathAbs(NormalizeDouble(Bid,4)-NormalizeDouble(pivot,4))<Delta*Point,
ここで、デルタ=2...5
誰かストップロスとTPのコードを教えてください。このEAにそれを追加する必要があります。
この隠されたSLとTP
int TakeProfit=20; // 20 pips take profit
int StopLoss =40; // 40 pips stoploss
int Slippage = 3;
int MagicNumber=1;
int i;
int start(){
//----- exit @ TP
if((ScanTrades()>=1)&& (ProfitInPips()>=TakeProfit)){
//----- This part will close all open orders and delete pending trades
for(i = OrdersTotal()-1; i >=0; i--)
{ OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber )
{
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum);
if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum);
if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket());
if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket());
}
}
}
//------exit @ SL
if((ScanTrades()>=1)&& (ProfitInPips()<= -StopLoss)){
//----- This part will close all open orders and delete pending trades
for(i = OrdersTotal()-1; i >=0; i--)
{ OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber )
{
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum);
if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum);
if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket());
if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket());
}
}
}
return (0);
}
//----------- Call functions
int ScanTrades()
{
int Tot = OrdersTotal();
int Numb = 0;
for(int cnt=0; cnt<=Tot-1; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) Numb++;
}
return(Numb);
}
double ProfitInPips()
{
RefreshRates();
double Prof=0;
int i;
int totalOrders=OrdersTotal();
for(i=0;i<totalOrders;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber)
{
if(OrderType()==0)
{
Prof+=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
}
if(OrderType()==1)
{
Prof+=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT);
}
}
}
return(Prof);
}
いくつかの買い注文と売り注文 があるとします。
私は何をしたいです。
- すべての取引「バスケット」を未決済取引の損益分岐点価格より5ピップス高い価格で終了させる。
最初のループでやろうとしていることは、オープントレード+スワップの値を求め、それをpipsに変換することです。
私はいくつかのアイデアを試してみましたが、私は行き止まりに達している、私は問題が最初のfor文であることを知っているが、私はそれを解決することはできません、任意のヘルプは非常に充当されます。
SymbolPL = 0;
OrdLots = 0;
Equity = 0;
MinPro = 5;
for(i = 0; i < OrdersTotal(); i++)
{OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{if(OrderType() == OP_BUY) OrdLots += OrderLots();
if(OrderType() == OP_SELL) OrdLots -= OrderLots();
Equity += OrderProfit() + OrderSwap();
}
}
MinPro= MathRound (MathAbs(Equity /OrdLots)+MinPro);
//--- Count the open trades
int i;
int count=0;
for(i=0;i<OrdersTotal();i++)
{ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber && OrderType()<2)
{ count++;
}
}
//--- find the profit in pips of the open trades
RefreshRates();
double profits=0,openPrice=0,points=0;
string sym="";
int i;
int totalOrders=OrdersTotal();
for(i=0;i<totalOrders;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber)
{
sym=OrderSymbol();
openPrice=OrderOpenPrice();
if(OrderType()==0)
{
profits+=(MarketInfo(sym,MODE_BID)-openPrice)/MarketInfo(sym,MODE_POINT);
}
if(OrderType()==1)
{
profits+=(OrderOpenPrice()-MarketInfo(sym,MODE_ASK))/MarketInfo(sym,MODE_POINT);
}
}
}
//--- Close when the open trades are 5 pips more than the breakeven price
if (count>1 && profits>MinPro )
{
for(i = OrdersTotal()-1; i >=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber )
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Plum);
}
}
}
と計算される「equity_per_lotpoint」定数を使えばいいと思います。
[/PHP]
and then you'd have what you need after the first loop, with:
[PHP]if ( Equity > 5 * equity_per_lotpoint * MathAbs( OrdLots ) ) { ...
ラルフさん、ありがとうございます。でも、スワップがなくなってしまうので、スワップ損益を注文の終値に含めたいのです。