[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 910 1...903904905906907908909910911912913914915916917...1145 新しいコメント 削除済み 2010.10.15 06:01 #9091 Vinin: ビクター、あなたの個人的なメッセージを見てみてください。 Victor Nikolaev 2010.10.15 06:07 #9092 glasha: ビクター、あなたの個人的なメッセージを見てみてください。 見る evgens 2010.10.15 16:35 #9093 dimon74: OrderSend()は1ティックごとにトリガーされます(私の理解では)。この問題を解消するには、start関数の前にint H= 0のように変数を配置します。 さらにコードを。 .......... if ( H==0) { OrderSend(ボチボチ)です。 } H=1; そして、代数も必要ない。また、OrdersTotal() は制限するために使用しない方が良い。 私は理解し、それは私のために動作します、私は1つの注文を開く必要があり、それは次のティックで開かれないということです。 2順目、2順目は1順目が終了して初めて必要となる evgens 2010.10.15 21:24 #9094 私の勘違いでなければ、こんな感じでしょうか? int H=0; int F=OrdersTotal(); .......... if(F<1) { if ( H==0) { OrderSend(ボチボチ)です。 } H=1;} 削除済み 2010.10.16 04:52 #9095 gheka: 私の勘違いでなければ、こんな感じでしょうか? int H=0; int F=OrdersTotal(); .......... if(F<1) { if ( H==0) { OrderSend(ボチボチ)です。 } H=1;} total = CountTrades(); if (total < 1) { ticket = OrderSend } int CountTrades() { int count = 0; for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) if (OrderType() == OP_SELL || OrderType() == OP_BUY) count++; } return (count); } 削除済み 2010.10.16 05:37 #9096 gheka: 私は理解し、それは私のために動作します、私は1つの注文を開く必要があり、それは次のティックで開かれないということです。 2番目の注文は、1番目の注文が終了したときに開く必要があります。 ここで確認しておくとよいでしょう。 Superjake 2010.10.16 11:51 #9097 皆さん、こんにちは。EAを書くのが苦手な私は、このようなことを学ぼうとしましたが、始めたばかりでかなり難しいです。価格が移動平均線を超えたら取引を開始し、反対側の交差点でストップロスまたはトレイリングストップを使用して取引を終了するEAを作成したいのです。このようなEAの例を見つけたのですが、トレーリングストップやストップロスがなく、取引は単に交差するところでオープン、クローズされるだけです。そのための知識が足りないんです。トレーリングストップとストップロスをどこに置くか、どうすればうまくいくか、誰かに教えてもらいたいのです。 #property copyright"Jake Sunders" #プロパティリンク "feloq@mail.ru" #define STATE_SQUARE 0 #define STATE_LONG 1 #define STATE_SHORT 2 //---- 入力パラメータ extern int MAPeriod=26; extern double LotsNumber=1.0; extern double TrailingStop=50; extern double StopLoss= 50; //---- グローバル変数 int CurrentState。 int MyOrderTicket; //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- if (iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0]) CurrentState = STATE_SHORT; else CurrentState = STATE_LONG; MyOrderTicket = 0; //---- return(0)です。 } //+------------------------------------------------------------------+ //| 専門家による初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- int err; ダブルMA MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0); if ( CurrentState == STATE_LONG) { if (MA > Close[1]) //移動平均線が終値より高い場合 { CurrentState = STATE_SHORT; //売りに転じる //--開いた場合はポジションを閉じる if ( MyOrderTicket != 0) { if (!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE)) { err = GetLastError()。 Print("Error at closing position: ", err); return(0)です。 } MyOrderTicket = 0; } RefreshRates()。 //--- ロングポジションは正常に終了しました。 //--- それでは、売りポジションをオープンします。 //--- フリーファンドを確認する MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0, null, 0, 0, clr_none) とする。 if (MyOrderTicket<0) { err = GetLastError()。 Print("Error at the opening of position: ", err); MyOrderTicket = 0; } } } さもなくば { if (MA < Close[1]) // 終値より下に平均値をスライドさせる。 { CurrentState = STATE_LONG; //逆に購入する //--開いた場合はポジションを閉じる if ( MyOrderTicket != 0) { if (!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE)) { err = GetLastError()。 Print("Error at closing position: ", err); return(0)です。 } MyOrderTicket = 0; } RefreshRates()。 //--- ショートポジションは正常に終了しました。 //--- それでは、買いポジションをオープンします。 //--- フリーファンドを確認する MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0, null, 0, 0, clr_none) とする。 if (MyOrderTicket<0) { err = GetLastError()。 Print("Error at the opening of position: ", err); MyOrderTicket = 0; } } } //---- return(0)です。 } [WARNING CLOSED!] Any newbie [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. EAが複数のペアで実行されない、助けが必要 削除済み 2010.10.16 13:17 #9098 皆さん、アドバイスをお願いしますローソク足やローソク足の有効期限にポジションをオープン、クローズするにはどうすればよいですか?つまり、新しいローソク足の始点で開き、終点は ローソク足の終値でインジケーターの値を取るにはどうしたらいいですか? costy_ 2010.10.16 13:21 #9099 gheka: 50~100近いポジションで、同じ値段で開く買い注文と売り注文がある。 注文を1つだけ出すにはどうしたらいいのでしょうか? この機能がないと、代数全体を入力する必要があるような気がします。 トレードを行うための誤った条件、2本のMAの例を参照。 costy_ 2010.10.16 13:28 #9100 Superjake: 皆さん、こんにちは。EAを書くのが苦手な私は、このようなことを学ぼうとしましたが、始めたばかりでかなり難しいです。価格が移動平均線を超えたら取引を開始し、反対側の交差点でストップロスまたはトレイリングストップを使用して取引を終了するEAを作成したいのです。このようなEAの例を見つけたのですが、トレーリングストップやストップロスがなく、取引は単に交差するところでオープン、クローズされるだけです。そのための知識が足りないんです。トレーリングストップとストップロスをどこに置くか、どうすればうまくいくか、誰かに教えてもらいたいのです。 #property copyright "Jake Sunders" #プロパティリンク "feloq@mail.ru" #define STATE_SQUARE 0 #define STATE_LONG 1 #define STATE_SHORT 2 //---- 入力パラメータ extern int MAPeriod=26; extern double LotsNumber=1.0; extern double TrailingStop=50; extern double StopLoss= 50; //---- グローバル変数 int CurrentState。 int MyOrderTicket; //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- if (iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0]) CurrentState = STATE_SHORT; else CurrentState = STATE_LONG; MyOrderTicket = 0; //---- return(0)です。 } //+------------------------------------------------------------------+ //| 専門家による初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- int err; ダブルMA MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0); if ( CurrentState == STATE_LONG) { if (MA > Close[1]) //移動平均線が終値より高い場合 { CurrentState = STATE_SHORT; //売りに転じる //--開いた場合はポジションを閉じる if ( MyOrderTicket != 0) { if (!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE)) { err = GetLastError()。 Print("Error at closing position: ", err); return(0)です。 } MyOrderTicket = 0; } RefreshRates()。 //--- ロングポジションは正常に終了しました。 //--- それでは、売りポジションをオープンします。 //--- フリーファンドを確認する MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0, null, 0, 0, clr_none) とする。 if (MyOrderTicket<0) { err = GetLastError()。 Print("Error at the opening of position: ", err); MyOrderTicket = 0; } } } さもなくば { if (MA < Close[1]) // 終値より下に平均値をスライドさせる。 { CurrentState = STATE_LONG; //逆に購入する //--開いた場合はポジションを閉じる if ( MyOrderTicket != 0) { if (!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE)) { err = GetLastError()。 Print("Error at closing position: ", err); return(0)です。 } MyOrderTicket = 0; } RefreshRates()。 //--- ショートポジションは正常に終了しました。 //--- それでは、買いポジションをオープンします。 //--- フリーファンドを確認する MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0, null, 0, 0, clr_none) とする。 if (MyOrderTicket<0) { err = GetLastError()。 Print("Error at the opening of position: ", err); MyOrderTicket = 0; } } } //---- return(0)です。 } この例をご覧ください。 1...903904905906907908909910911912913914915916917...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ビクター、あなたの個人的なメッセージを見てみてください。
見る
OrderSend()は1ティックごとにトリガーされます(私の理解では)。この問題を解消するには、start関数の前にint H= 0のように変数を配置します。
さらにコードを。
..........
if ( H==0)
{
OrderSend(ボチボチ)です。
}
H=1;
そして、代数も必要ない。また、OrdersTotal() は制限するために使用しない方が良い。
私は理解し、それは私のために動作します、私は1つの注文を開く必要があり、それは次のティックで開かれないということです。
2順目、2順目は1順目が終了して初めて必要となる
私の勘違いでなければ、こんな感じでしょうか?
int H=0;
int F=OrdersTotal();
..........
if(F<1)
{
if ( H==0)
{
OrderSend(ボチボチ)です。
}
H=1;}
私の勘違いでなければ、こんな感じでしょうか?
int H=0;
int F=OrdersTotal();
..........
if(F<1)
{
if ( H==0)
{
OrderSend(ボチボチ)です。
}
H=1;}
私は理解し、それは私のために動作します、私は1つの注文を開く必要があり、それは次のティックで開かれないということです。
2番目の注文は、1番目の注文が終了したときに開く必要があります。
皆さん、こんにちは。EAを書くのが苦手な私は、このようなことを学ぼうとしましたが、始めたばかりでかなり難しいです。価格が移動平均線を超えたら取引を開始し、反対側の交差点でストップロスまたはトレイリングストップを使用して取引を終了するEAを作成したいのです。このようなEAの例を見つけたのですが、トレーリングストップやストップロスがなく、取引は単に交差するところでオープン、クローズされるだけです。そのための知識が足りないんです。トレーリングストップとストップロスをどこに置くか、どうすればうまくいくか、誰かに教えてもらいたいのです。
#property copyright"Jake Sunders"
#プロパティリンク "feloq@mail.ru"
#define STATE_SQUARE 0
#define STATE_LONG 1
#define STATE_SHORT 2
//---- 入力パラメータ
extern int MAPeriod=26;
extern double LotsNumber=1.0;
extern double TrailingStop=50;
extern double StopLoss= 50;
//---- グローバル変数
int CurrentState。
int MyOrderTicket;
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
if (iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0])
CurrentState = STATE_SHORT;
else CurrentState = STATE_LONG;
MyOrderTicket = 0;
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
int err;
ダブルMA
MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);
if ( CurrentState == STATE_LONG)
{
if (MA > Close[1]) //移動平均線が終値より高い場合
{
CurrentState = STATE_SHORT;
//売りに転じる
//--開いた場合はポジションを閉じる
if ( MyOrderTicket != 0)
{
if (!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE))
{
err = GetLastError()。
Print("Error at closing position: ", err);
return(0)です。
}
MyOrderTicket = 0;
}
RefreshRates()。
//--- ロングポジションは正常に終了しました。
//--- それでは、売りポジションをオープンします。
//--- フリーファンドを確認する
MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0,
null, 0, 0, clr_none) とする。
if (MyOrderTicket<0)
{
err = GetLastError()。
Print("Error at the opening of position: ", err);
MyOrderTicket = 0;
}
}
}
さもなくば
{
if (MA < Close[1]) // 終値より下に平均値をスライドさせる。
{
CurrentState = STATE_LONG;
//逆に購入する
//--開いた場合はポジションを閉じる
if ( MyOrderTicket != 0)
{
if (!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE))
{
err = GetLastError()。
Print("Error at closing position: ", err);
return(0)です。
}
MyOrderTicket = 0;
}
RefreshRates()。
//--- ショートポジションは正常に終了しました。
//--- それでは、買いポジションをオープンします。
//--- フリーファンドを確認する
MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0,
null, 0, 0, clr_none) とする。
if (MyOrderTicket<0)
{
err = GetLastError()。
Print("Error at the opening of position: ", err);
MyOrderTicket = 0;
}
}
}
//----
return(0)です。
}
皆さん、アドバイスをお願いしますローソク足やローソク足の有効期限にポジションをオープン、クローズするにはどうすればよいですか?つまり、新しいローソク足の始点で開き、終点は
ローソク足の終値でインジケーターの値を取るにはどうしたらいいですか?
50~100近いポジションで、同じ値段で開く買い注文と売り注文がある。
注文を1つだけ出すにはどうしたらいいのでしょうか?
この機能がないと、代数全体を入力する必要があるような気がします。
トレードを行うための誤った条件、2本のMAの例を参照。
皆さん、こんにちは。EAを書くのが苦手な私は、このようなことを学ぼうとしましたが、始めたばかりでかなり難しいです。価格が移動平均線を超えたら取引を開始し、反対側の交差点でストップロスまたはトレイリングストップを使用して取引を終了するEAを作成したいのです。このようなEAの例を見つけたのですが、トレーリングストップやストップロスがなく、取引は単に交差するところでオープン、クローズされるだけです。そのための知識が足りないんです。トレーリングストップとストップロスをどこに置くか、どうすればうまくいくか、誰かに教えてもらいたいのです。
#property copyright "Jake Sunders"
#プロパティリンク "feloq@mail.ru"
#define STATE_SQUARE 0
#define STATE_LONG 1
#define STATE_SHORT 2
//---- 入力パラメータ
extern int MAPeriod=26;
extern double LotsNumber=1.0;
extern double TrailingStop=50;
extern double StopLoss= 50;
//---- グローバル変数
int CurrentState。
int MyOrderTicket;
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
if (iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0])
CurrentState = STATE_SHORT;
else CurrentState = STATE_LONG;
MyOrderTicket = 0;
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
int err;
ダブルMA
MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);
if ( CurrentState == STATE_LONG)
{
if (MA > Close[1]) //移動平均線が終値より高い場合
{
CurrentState = STATE_SHORT;
//売りに転じる
//--開いた場合はポジションを閉じる
if ( MyOrderTicket != 0)
{
if (!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE))
{
err = GetLastError()。
Print("Error at closing position: ", err);
return(0)です。
}
MyOrderTicket = 0;
}
RefreshRates()。
//--- ロングポジションは正常に終了しました。
//--- それでは、売りポジションをオープンします。
//--- フリーファンドを確認する
MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0,
null, 0, 0, clr_none) とする。
if (MyOrderTicket<0)
{
err = GetLastError()。
Print("Error at the opening of position: ", err);
MyOrderTicket = 0;
}
}
}
さもなくば
{
if (MA < Close[1]) // 終値より下に平均値をスライドさせる。
{
CurrentState = STATE_LONG;
//逆に購入する
//--開いた場合はポジションを閉じる
if ( MyOrderTicket != 0)
{
if (!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE))
{
err = GetLastError()。
Print("Error at closing position: ", err);
return(0)です。
}
MyOrderTicket = 0;
}
RefreshRates()。
//--- ショートポジションは正常に終了しました。
//--- それでは、買いポジションをオープンします。
//--- フリーファンドを確認する
MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0,
null, 0, 0, clr_none) とする。
if (MyOrderTicket<0)
{
err = GetLastError()。
Print("Error at the opening of position: ", err);
MyOrderTicket = 0;
}
}
}
//----
return(0)です。
}
この例をご覧ください。