[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 43

 
r772ra:
または、信号が到着した後の任意の時間を設定することができます
私のバリアントは、あるアクション(この場合は注文を開く)を実行するための制限を(シグナルが到着した後)1分間に含意します。それから:遅刻したら、遅刻したで。仮に、信号を受信した直後にサーバーとの接続が切れ、1時間後に再開したとする。なぜ1時間後に注文を開けるのか?;)
 
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);
  }

 
TarasBY:

ここに書かれていることはナンセンスです。

iCustom() についてお読みください。


ありがとうございます 読ませていただきました 例を探した方がいいのかもしれませんね クソわかりにくいのですが
 
Andrey-F:

EAのコードを2~3行で実装する方法を教えてください。

シグナルが入ったとき(2つのMAが交差したときなど)

1.Expert Advisorは、シグナルの時間(時間、分)を決定し、保存します。

2. 1分間カウントダウンします。

その後、Expert Advisorはアクションを実行する準備ができています(例:注文を開く)。

ありがとうございます。
 

Codabaseでのインジケータの公開が理解できない。ステータスが公開する準備ができているように、すなわち論理的に司会者がこの七面鳥の一般的なアクセスに配置されるまで待つ必要がありますが、それは数日されており、何の結果。何が問題なのでしょうか?

ps. このコードは、ここで初めて公開されました。

 
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)
そして、こんな 機能もあります。
 
Roman.:

何もないところに迷い込まないように。ユニークなマジックシンボルに対してExpトランザクションを行うことができます(選択したシンボルに対してYOUR expにマジックオーダーを割り当てる)。そして、条件付きif - else演算子を使って、記号と魔法記号でフィルターを繋ぎ、入力値の異なるキムI.V.からこの関数を 使う。

NumberOfOrders()関数。

.それだけです。




ありがとうございます、より簡単な解決策を見つけました。
 
Kobalerro:

ありがとうございます。よりシンプルな解決策が見つかりました。

よっしゃー解決策を掲載していただき、ありがとうございます。
 
Kobalerro:

ご参加ありがとうございました。でも、それ以上のことはないと思うんです。

r772ra さんのご指摘により、以下のように解決しました。

あるいは、こんな感じでしょうか。

そして、以下がその機能 です。

よっしゃー流行にのって、良い狩りをしましょう!!!

マッドズックス
 
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