[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 43 1...363738394041424344454647484950...432 新しいコメント TarasBY 2012.12.26 17:57 #421 r772ra: または、信号が到着した後の任意の時間を設定することができます 私のバリアントは、あるアクション(この場合は注文を開く)を実行するための制限を(シグナルが到着した後)1分間に含意します。それから:遅刻したら、遅刻したで。仮に、信号を受信した直後にサーバーとの接続が切れ、1時間後に再開したとする。なぜ1時間後に注文を開けるのか?;) andrey47902 2012.12.26 18:16 #422 TarasBY:グローバル変数に、信号が発生したときの時刻値を書き込む。と言って、1分をカウントダウンする(できる)。これは、イベント発生後の時間を追跡するソリューションの一つです。 残念ながらうまくいきません。1分後にサポートラインとレジスタンスラインがアクションとして描かれるはずですが、なぜかチャート上には描かれません。コードを見てください、どこにエラーがあるのでしょうか?bool Fact_1 = false; // Глобальная перемен для бай. bool Fact_2 = false; // Глобальная перемен для бай bool Fact_3 = false; // Глобальная перемен для бай double support; double resist; int timeFrame = 5; int numBars = 15; datetime gdt_TimeSignal;//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+ int init() {//----//---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+ int deinit() {//---- ObjectsDeleteAll(); //---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+ int start() {//---- //--------------------------------------------------------------------------- if (Fact_3==true) //Если событие уже.. //..было, то выходим return(0); //---- //---- БЛОК ОТКРЫТИЯ BUY-------------------------------------------------------------- if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&& iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5 Fact_1 = true; // Произошло событие 1 //- if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50 Fact_2 = true; // Произошло событие 2 //if (Signal) gdt_TimeSignal = TimeCurrent(); if (Fact_2) gdt_TimeSignal = TimeCurrent(); if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1) { //---- Открываете ордер // OrderSend (); //--------------------------------------------------------------------------------- {// Определяем линии поддержки\сопротивления support = 10000; resist = 0; for(int u = 1;u<=numBars;u++) { if(support>iLow(Symbol(),timeFrame,u)) support = iLow(Symbol(),timeFrame,u); if(resist<iHigh(Symbol(),timeFrame,u)) resist = iHigh(Symbol(),timeFrame,u); } ObjectSet("lineSupport",OBJPROP_PRICE1,support); ObjectSet("lineResist",OBJPROP_PRICE1,resist); } //---- { ObjectCreate("lineSupport",OBJ_HLINE,0,0,0); ObjectSet("lineSupport",OBJPROP_COLOR,Blue); ObjectCreate("lineResist",OBJ_HLINE,0,0,0); ObjectSet("lineResist",OBJPROP_COLOR,Red); }//------------------------------------------------------------- gdt_TimeSignal = 0; }//что сюда добавить что бы линии появившись, оставались на месте?//---- return(0); } [ARCHIVE]Any rookie question, so 水平線 MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 odiseiff 2012.12.26 18:24 #423 TarasBY:ここに書かれていることはナンセンスです。iCustom() についてお読みください。 ありがとうございます 読ませていただきました 例を探した方がいいのかもしれませんね クソわかりにくいのですが andrey47902 2012.12.26 18:37 #424 Andrey-F:EAのコードを2~3行で実装する方法を教えてください。シグナルが入ったとき(2つのMAが交差したときなど)1.Expert Advisorは、シグナルの時間(時間、分)を決定し、保存します。2. 1分間カウントダウンします。 その後、Expert Advisorはアクションを実行する準備ができています(例:注文を開く)。 ありがとうございます。 Alexey Oreshkin 2012.12.26 18:50 #425 Codabaseでのインジケータの公開が理解できない。ステータスが公開する準備ができているように、すなわち論理的に司会者がこの七面鳥の一般的なアクセスに配置されるまで待つ必要がありますが、それは数日されており、何の結果。何が問題なのでしょうか?ps. このコードは、ここで初めて公開されました。 Kobalerro 2012.12.27 02:07 #426 madzx:そうですねディスクへの書き込みをしなくても、簡単にできるようになりました。 標準端末の手綱を別の端末に繋ぐだけ 標準端末の手綱を別の端末に結んでいるところです(笑)。許してくれ、とにかくやるしかないんだ。 というのは、フレディ・マーキュリー卿が言ったからです。 Show must go on!では、スペックを整理してみましょう。 私の理解では 1.あるアカウントでは、通貨ペアのチャートのセットでウィンドウを大量に開いています(10個)。2.それぞれのチャートには、Expert Advisorという仕事道具が置かれていて、何かをしてくれる。 3.以下の条件を満たすアカウントであること。 3.1 口座にある未決済の成行注文の総数は5を越えてはならない。 馬券型(保留)の注文はカウントされないはず(だと思うのですが、指定されていませんね) 3.2 アカウント上の一連のチャートに基づいて、特定のシンボルのリストが形成されます。取引される金融商品の種類と、各商品が一度に開くことのできる注文は1つまでです。一度に保有できる未決済注文は1つまでとします。---------------------------------------------------------こんな感じ!?すべて正しいかどうか見てみましょう では、どの言語で行うべきか教えてください(mq4やmq5など)。 と、取引するインスタンスのリスト(固定か、毎回違うか)。 各EAの本文に短く貼り付けるべきだと思います (必要であれば手続きとして提出することができます)で可能になります。現在あるアクションのパーミッションについて決定します。午前5時なので、そろそろ失礼したいと思います :))マッドズックス ご参加ありがとうございました。でも、必要ないと思うんです。 r772ra さんのご指摘により、以下のように解決しました。あるいは、こんな感じでしょうか。if(NumberOfPositions("EURUSD")==0 && NumberOfPositions()<5) そして、こんな 機能もあります。 Kobalerro 2012.12.27 02:11 #427 Roman.: 何もないところに迷い込まないように。ユニークなマジックシンボルに対してExpトランザクションを行うことができます(選択したシンボルに対してYOUR expにマジックオーダーを割り当てる)。そして、条件付きif - else演算子を使って、記号と魔法記号でフィルターを繋ぎ、入力値の異なるキムI.V.からこの関数を 使う。 NumberOfOrders()関数。.それだけです。 ありがとうございます、より簡単な解決策を見つけました。 Роман 2012.12.27 02:33 #428 Kobalerro: ありがとうございます。よりシンプルな解決策が見つかりました。 よっしゃー解決策を掲載していただき、ありがとうございます。 削除済み 2012.12.27 04:03 #429 Kobalerro:ご参加ありがとうございました。でも、それ以上のことはないと思うんです。 r772ra さんのご指摘により、以下のように解決しました。あるいは、こんな感じでしょうか。 そして、以下がその機能 です。 よっしゃー流行にのって、良い狩りをしましょう!!! マッドズックス TarasBY 2012.12.27 05:29 #430 Kobalerro:ご参加ありがとうございました。でも、それ以上のことはないと思うんです。 r772ra さんのご指摘により、以下のように解決しました。あるいは、こんな感じでしょうか。 そして、ここでは関数 この解決策が気に入ったら、さらにコードを簡略化することができます。if(NumberOfPositions("EURUSD")==0 && OrdersTotal()<5)でも、こう書いた方が正しいかもしれませんね。if(NumberOfPositions(Symbol())==0 && OrdersTotal()<5)幼稚」でなければ、マジックを使うべきでしょう(そのうち、手動注文を開いたり、別のEAを近くに置いたりしたくなるはずです)。if(NumberOfPositions(Symbol(), Magic)==0 && NumberOfPositions("", Magic)<5)この場合、すべてのEAが同じMagikを持つべきで、注文リストを使った他の操作の際に、Magikとチャートシンボルにフィルターを使用することを忘れないでください。 for (int li_pos = OrderTotal() - 1; li_pos >= 0; li_pos--) { if (!OrderSelect (li_pos, SELECT_BY_POS, MODE_TRADES)) continue; if (OrderMagicNumber() != Magic) continue; if (Symbol() != OrderSymbol()) continue; //---- дальнейшие опреации (модификация, удаление и т.д.) }マジックを外部変数で宣言したり、定数として宣言しているかと思います。#define Magic 555 1...363738394041424344454647484950...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
または、信号が到着した後の任意の時間を設定することができます
グローバル変数に、信号が発生したときの時刻値を書き込む。
と言って、1分をカウントダウンする(できる)。
これは、イベント発生後の時間を追跡するソリューションの一つです。
残念ながらうまくいきません。1分後にサポートラインとレジスタンスラインがアクションとして描かれるはずですが、なぜかチャート上には描かれません。コードを見てください、どこにエラーがあるのでしょうか?
bool Fact_2 = false; // Глобальная перемен для бай
bool Fact_3 = false; // Глобальная перемен для бай
double support;
double resist;
int timeFrame = 5;
int numBars = 15;
datetime gdt_TimeSignal;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//---------------------------------------------------------------------------
if (Fact_3==true) //Если событие уже..
//..было, то выходим
return(0);
//----
//---- БЛОК ОТКРЫТИЯ BUY--------------------------------------------------------------
if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true; // Произошло событие 1
//-
if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
Fact_2 = true; // Произошло событие 2
//if (Signal) gdt_TimeSignal = TimeCurrent();
if (Fact_2) gdt_TimeSignal = TimeCurrent();
if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1)
{
//---- Открываете ордер
// OrderSend ();
//---------------------------------------------------------------------------------
{
// Определяем линии поддержки\сопротивления
support = 10000;
resist = 0;
for(int u = 1;u<=numBars;u++)
{
if(support>iLow(Symbol(),timeFrame,u))
support = iLow(Symbol(),timeFrame,u);
if(resist<iHigh(Symbol(),timeFrame,u))
resist = iHigh(Symbol(),timeFrame,u);
}
ObjectSet("lineSupport",OBJPROP_PRICE1,support);
ObjectSet("lineResist",OBJPROP_PRICE1,resist);
}
//----
{
ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
ObjectSet("lineResist",OBJPROP_COLOR,Red);
}
//-------------------------------------------------------------
gdt_TimeSignal = 0;
}
//что сюда добавить что бы линии появившись, оставались на месте?
//----
return(0);
}
ここに書かれていることはナンセンスです。
iCustom() についてお読みください。
ありがとうございます 読ませていただきました 例を探した方がいいのかもしれませんね クソわかりにくいのですが
EAのコードを2~3行で実装する方法を教えてください。
シグナルが入ったとき(2つのMAが交差したときなど)
1.Expert Advisorは、シグナルの時間(時間、分)を決定し、保存します。
2. 1分間カウントダウンします。
その後、Expert Advisorはアクションを実行する準備ができています(例:注文を開く)。ありがとうございます。
Codabaseでのインジケータの公開が理解できない。ステータスが公開する準備ができているように、すなわち論理的に司会者がこの七面鳥の一般的なアクセスに配置されるまで待つ必要がありますが、それは数日されており、何の結果。何が問題なのでしょうか?
ps. このコードは、ここで初めて公開されました。
そうですねディスクへの書き込みをしなくても、簡単にできるようになりました。
標準端末の手綱を別の端末に繋ぐだけ
標準端末の手綱を別の端末に結んでいるところです(笑)。
許してくれ、とにかくやるしかないんだ。
というのは、フレディ・マーキュリー卿が言ったからです。
Show must go on!
では、スペックを整理してみましょう。
私の理解では
1.あるアカウントでは、通貨ペアのチャートのセットでウィンドウを大量に開いています(10個)。
2.それぞれのチャートには、Expert Advisorという仕事道具が置かれていて、何かをしてくれる。
3.以下の条件を満たすアカウントであること。
3.1 口座にある未決済の成行注文の総数は5を越えてはならない。
馬券型(保留)の注文はカウントされないはず(だと思うのですが、指定されていませんね)
3.2 アカウント上の一連のチャートに基づいて、特定のシンボルのリストが形成されます。
取引される金融商品の種類と、各商品が一度に開くことのできる注文は1つまでです。
一度に保有できる未決済注文は1つまでとします。
---------------------------------------------------------
こんな感じ!?すべて正しいかどうか見てみましょう
では、どの言語で行うべきか教えてください(mq4やmq5など)。
と、取引するインスタンスのリスト(固定か、毎回違うか)。
各EAの本文に短く貼り付けるべきだと思います
(必要であれば手続きとして提出することができます)で可能になります。
現在あるアクションのパーミッションについて決定します。
午前5時なので、そろそろ失礼したいと思います :))
マッドズックス
ご参加ありがとうございました。でも、必要ないと思うんです。
r772ra さんのご指摘により、以下のように解決しました。
あるいは、こんな感じでしょうか。
そして、こんな 機能もあります。何もないところに迷い込まないように。ユニークなマジックシンボルに対してExpトランザクションを行うことができます(選択したシンボルに対してYOUR expにマジックオーダーを割り当てる)。そして、条件付きif - else演算子を使って、記号と魔法記号でフィルターを繋ぎ、入力値の異なるキムI.V.からこの関数を 使う。
NumberOfOrders()関数。
.それだけです。
ありがとうございます、より簡単な解決策を見つけました。
ありがとうございます。よりシンプルな解決策が見つかりました。
よっしゃー解決策を掲載していただき、ありがとうございます。
ご参加ありがとうございました。でも、それ以上のことはないと思うんです。
r772ra さんのご指摘により、以下のように解決しました。
あるいは、こんな感じでしょうか。
そして、以下がその機能 です。よっしゃー流行にのって、良い狩りをしましょう!!!
マッドズックス
ご参加ありがとうございました。でも、それ以上のことはないと思うんです。
r772ra さんのご指摘により、以下のように解決しました。
あるいは、こんな感じでしょうか。
そして、ここでは関数この解決策が気に入ったら、さらにコードを簡略化することができます。
でも、こう書いた方が正しいかもしれませんね。
幼稚」でなければ、マジックを使うべきでしょう(そのうち、手動注文を開いたり、別のEAを近くに置いたりしたくなるはずです)。
この場合、すべてのEAが同じMagikを持つべきで、注文リストを使った他の操作の際に、Magikとチャートシンボルにフィルターを使用することを忘れないでください。
マジックを外部変数で宣言したり、定数として宣言しているかと思います。
#define Magic 555