[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 196 1...189190191192193194195196197198199200201202203...652 新しいコメント Alexander 2011.09.19 20:36 #1951 torah01: 買う int start() { オーダーセンド(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid)- 50*Point,Bid+50*Point); return(0)です。 } help please... を-に変更しました。 そして、ストップとテイクを確認します。今、あなたはストップ=70+スプレッド、テイク=+30マイナススプレッドです。 Алексей Тарабанов 2011.09.19 20:45 #1952 TheXpert: 人前で異端を広めないでください。オタクは他所でやれ、いくらでもあるんだから...。 ありがとうございます、ちょうど相談しに来ていたんです。 Алексей Тарабанов 2011.09.19 21:16 #1953 NickXXX: 1.ここでは、ダブルは分と時間の足し算にしか使われていないのですが、基準点をHHに指定できるようにしました。MM(例:16. 23)です。 2.最後のページを見ると、もちろんdatetimeに関するものもありますが、全く同じではありません。単純に、最後に注文した時刻をHH.MM形式で出力している。 検索がうまくいかない。ページ190、投稿時間 2011.09.18 23:03 Алексей Тарабанов 2011.09.19 21:26 #1954 nemo811:こんにちは。コードの修正をお願いします。以下の2行はいずれも不具合があります。ありがとうございました。 プログラムそのもの。 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true) MODE_HISTORY の方が分かりやすいと思います。 削除済み 2011.09.19 21:31 #1955 tara: < 0.6、といったところでしょうか。割り算の余りは常に1より小さい :) それはなぜか?)12を10で割った余り=2です。 NickXXX: そういう変数がたくさんある場合はどうするのですか?それは残念なことなのか、それともうまくいくのだろうか。もう一つ小さな疑問なのですが、例えば条件を実行する間隔(例:16.00-16.03)を設定するとします。新しいティックの到着にもかかわらず、一度だけ実行するようにするにはどうしたらよいでしょうか?それが効果的です。そして、一度だけ行うには、次のような追加のサービス変数を入力します。bool flag=true; int start() { if (ваше уловие по времени && flag) { тра-та-та flag=false; } } Алексей Тарабанов 2011.09.19 21:41 #1956 Figar0: それはなぜか?)12を10で割った余り=2です。これなら大丈夫。そして、一回で済ませるには、こんな風にサービス変数を追加入力します。 ええ、ちょっと不具合があるんです :) Артур 2011.09.19 22:24 #1957 tara: if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true) MODE_HISTORYの方が意味があると思います。 大賛成です。夜になると、頭の回転が鈍くなるんです。 しかし、この修正でも、int MAGIC;変数を再宣言すると、スクリプトの上記の不具合(マジック変数と数値の混同)が発生することに気づきました(まさにこのマジックが何らかの理由でロックされているのです)。int MAGIC; を削除すると(extern int MAGIC = 1; が残る)、すべてが正常に動作するようになります。 なぜ必要なのか、という論理的な問いかけint MAGICを取り除き、安心して生活することができます。BUT. このコードをライブラリに入れる必要があります。しかし、int MAGICを定義しないと、エラーになります。 それが、私のやるべきことだと思っています。Expert Advisorですべて動作しますか?なぜ、このint MAGIC;? 下のスクリプトです。 extern int MAGIC = 1; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- int OrdTicket=OrdTicket_b(); Alert (OrdTicket); //---- return(0); } //+------------------------------------------------------------------+ int OrdTicket_b() { string SMB=Symbol(); int OrdTicket; int i; for(i=0;i<OrdersTotal();i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true) { if(OrderSymbol()==SMB) { if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { OrdTicket=OrderTicket(); } } } } } return(OrdTicket); FxMtS 2011.09.19 22:55 #1958 mt-4端末のメールサーバーの設定は、どのフォルダに保存されていますか? 削除済み 2011.09.20 01:29 #1959 同志よ、助けてくれ...。簡単なコードを書いたのですが、コンパイル時に括弧のバランスが崩れていると言われました。 考え方は非常にシンプルで、MACDが7分以内に0を上回った(または下回った)場合、ポジションを建てるというものです //+------------------------------------------------------------------+ //| MACD ^^.mq4|||。 //| 著作権 © 2011, MetaQuotes Software Corp. //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright"著作権 © 2011, MetaQuotes Software Corp. #プロパティリンク "http://www.metaquotes.net" extern int TP = 100; extern int TS = 100; extern double lots = 0.1; int slip = 3; int Magic = 1; //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| 専門家による初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- int total,ticket; //totalとticketを宣言する。 int signal = signal_MACD(); // signal_MACD はシグナルに値を渡す AnalyzeSignal(signal); //シグナルを解析する int MACD[8] = {0,1,2,3,4,5,6,7}; //1次元のMACD配列を作成する。 MACD[0] = iMACD(シンボル(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7)です。 MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6); MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5); MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4); MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3); MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2); MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1); MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0); total = OrdersTotal(); //注文件数を合計します。 int signal_MACD() //calculate MACD signal { if(total<1) //オーダーが1より小さい場合、条件を検討する。 { if(MACD[0]<0)(イフ) { if(MACD[1]>0)とする。 { if(MACD[2]>0)とする。 { { if(MACD[3]>0)の場合 { { if(MACD[4]>0)の場合 { { if(MACD[5]>0) { { if(MACD[6]>0)の場合 { { if(MACD[7]<0)(イフ) { return(-100)です。 } } } } } } } } if(MACD[0]>0)とする。 { if(MACD[1]<0)(イフ) { if(MACD[2]<0)(イフ) { { if(MACD[3]<0)(イフ) { { if(MACD[4]<0)(イフ) { { if(MACD[5]<0)(イフ) { { if(MACD[6]<0)(イフ) { if(MACD[7]>0)とする。 { return(100)です。 } } } } } } } } } } void AnalyzeSignal(int signal) (シグナル解析) { if(signal == 100) { ticket = OrderSend(Symbol(),OP_BUY,Ask,slip,Bid-TS*Point,Bid+TP*Point, "buy",Magic,0,Green); if(チケット>0) { オーダーセレクト(ticket,SELECT_BY_TICKET;) Print("opened for buy at price:" OrderOpenPrice()); } さもなくば { Print("opened failed due to:" GetLastError()); return(0)です。 } } if(signal == -100) { ticket = OrderSend(Symbol(,OP_SELL,Bid,slip,Ask+TS*Point,Ask-TP*Point, "Sell",Magic,0,Green)); if(チケット>0) { OrderSelect(ticket,SELECT_BY_TICKET)です。 Print("opened for sale at price:" OrderOpenPrice()); } さもなくば { Print("opened failed due to:" GetLastError()); return(0)です。 } } } //---- return(0)です。 } //+------------------------------------------------------------------+ [ARCHIVE] Any rookie question, [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. Need Help again... 削除済み 2011.09.20 01:30 #1960 p.s.どうしたらこんなに美しい台本が描けるのでしょうか? 1...189190191192193194195196197198199200201202203...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
買う
int start()
{
オーダーセンド(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid)- 50*Point,Bid+50*Point);
return(0)です。
}
help please...
人前で異端を広めないでください。オタクは他所でやれ、いくらでもあるんだから...。
ありがとうございます、ちょうど相談しに来ていたんです。
1.ここでは、ダブルは分と時間の足し算にしか使われていないのですが、基準点をHHに指定できるようにしました。MM(例:16. 23)です。
2.最後のページを見ると、もちろんdatetimeに関するものもありますが、全く同じではありません。単純に、最後に注文した時刻をHH.MM形式で出力している。
検索がうまくいかない。ページ190、投稿時間 2011.09.18 23:03
こんにちは。
コードの修正をお願いします。
以下の2行はいずれも不具合があります。
ありがとうございました。
プログラムそのもの。
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
MODE_HISTORY の方が分かりやすいと思います。
< 0.6、といったところでしょうか。割り算の余りは常に1より小さい :)
それはなぜか?)12を10で割った余り=2です。
そういう変数がたくさんある場合はどうするのですか?
それは残念なことなのか、それともうまくいくのだろうか。
もう一つ小さな疑問なのですが、例えば条件を実行する間隔(例:16.00-16.03)を設定するとします。新しいティックの到着にもかかわらず、一度だけ実行するようにするにはどうしたらよいでしょうか?
それが効果的です。そして、一度だけ行うには、次のような追加のサービス変数を入力します。
それはなぜか?)12を10で割った余り=2です。
これなら大丈夫。そして、一回で済ませるには、こんな風にサービス変数を追加入力します。
ええ、ちょっと不具合があるんです :)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
MODE_HISTORYの方が意味があると思います。
大賛成です。夜になると、頭の回転が鈍くなるんです。
しかし、この修正でも、int MAGIC;変数を再宣言すると、スクリプトの上記の不具合(マジック変数と数値の混同)が発生することに気づきました(まさにこのマジックが何らかの理由でロックされているのです)。int MAGIC; を削除すると(extern int MAGIC = 1; が残る)、すべてが正常に動作するようになります。
なぜ必要なのか、という論理的な問いかけint MAGICを取り除き、安心して生活することができます。BUT.
このコードをライブラリに入れる必要があります。しかし、int MAGICを定義しないと、エラーになります。
それが、私のやるべきことだと思っています。Expert Advisorですべて動作しますか?なぜ、このint MAGIC;?
下のスクリプトです。
同志よ、助けてくれ...。簡単なコードを書いたのですが、コンパイル時に括弧のバランスが崩れていると言われました。
考え方は非常にシンプルで、MACDが7分以内に0を上回った(または下回った)場合、ポジションを建てるというものです
//+------------------------------------------------------------------+
//| MACD ^^.mq4|||。
//| 著作権 © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"著作権 © 2011, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"
extern int TP = 100;
extern int TS = 100;
extern double lots = 0.1;
int slip = 3;
int Magic = 1;
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
int total,ticket; //totalとticketを宣言する。
int signal = signal_MACD(); // signal_MACD はシグナルに値を渡す
AnalyzeSignal(signal); //シグナルを解析する
int MACD[8] = {0,1,2,3,4,5,6,7}; //1次元のMACD配列を作成する。
MACD[0] = iMACD(シンボル(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7)です。
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);
total = OrdersTotal(); //注文件数を合計します。
int signal_MACD() //calculate MACD signal
{
if(total<1) //オーダーが1より小さい場合、条件を検討する。
{
if(MACD[0]<0)(イフ)
{
if(MACD[1]>0)とする。
{
if(MACD[2]>0)とする。
{
{ if(MACD[3]>0)の場合
{
{ if(MACD[4]>0)の場合
{
{ if(MACD[5]>0)
{
{ if(MACD[6]>0)の場合
{
{ if(MACD[7]<0)(イフ)
{
return(-100)です。
}
}
}
}
}
}
}
}
if(MACD[0]>0)とする。
{
if(MACD[1]<0)(イフ)
{
if(MACD[2]<0)(イフ)
{
{ if(MACD[3]<0)(イフ)
{
{ if(MACD[4]<0)(イフ)
{
{ if(MACD[5]<0)(イフ)
{
{ if(MACD[6]<0)(イフ)
{
if(MACD[7]>0)とする。
{
return(100)です。
}
}
}
}
}
}
}
}
}
}
void AnalyzeSignal(int signal) (シグナル解析)
{
if(signal == 100)
{
ticket = OrderSend(Symbol(),OP_BUY,Ask,slip,Bid-TS*Point,Bid+TP*Point, "buy",Magic,0,Green);
if(チケット>0)
{
オーダーセレクト(ticket,SELECT_BY_TICKET;)
Print("opened for buy at price:" OrderOpenPrice());
}
さもなくば
{
Print("opened failed due to:" GetLastError());
return(0)です。
}
}
if(signal == -100)
{
ticket = OrderSend(Symbol(,OP_SELL,Bid,slip,Ask+TS*Point,Ask-TP*Point, "Sell",Magic,0,Green));
if(チケット>0)
{
OrderSelect(ticket,SELECT_BY_TICKET)です。
Print("opened for sale at price:" OrderOpenPrice());
}
さもなくば
{
Print("opened failed due to:" GetLastError());
return(0)です。
}
}
}
//----
return(0)です。
}
//+------------------------------------------------------------------+