ONLY CANDLE / BAR - キャンドルはどのように分類すればよいのでしょうか?- ご指摘をお願いします。

 


ONLYキャンドル - キャンドルのカタログや分離する方法?

修正お願いします



我々は、強気と弱気のろうそくを持っている私はこれを分離したい

それはちょうど 羊飼いのようなもの です。羊飼いは、農場、小作地を持っており、羊を持っています。

それは羊を剃るために季節であるとき羊飼い氏JOHNは、羊をキャッチし、ファームに移動し...

最初に捕まえた羊は小さすぎて毛を剃ることができません。

次の羊はいい羊で、ジョンはハサミを持ち、羊は裸になります。

次の羊は、羊毛が 大きくて良い羊です。

次の羊は牡羊 座 - ジョンはナイフを持ち、牡羊座は宦官


同じことをロウソク足でやってみたい
私たちのキャンドルはBar[0]に向かっている...私たちは待っている...彼女は行っている、私たちは待っている....15分(M15)、それがある! ...何ですか?...それは何ですか?

私はBullischキャンドルとキャンドル(価格オープン[1]-価格クローズ[1])が小さすぎる2点を持っている場合 - 手放す、我々は何もしない。



私はBullischキャンドルとキャンドルを持っている場合(価格オープン[1]-価格クローズ[1])4ポイントを持っている - その後、プログラムを起動します。

CheckForOpenS1(); 価格がローソク足より+4ポイントになったら買い機能 開始 (scenario1)

もし私がブリスチキャンドルを持っていて、キャンドル(価格オープン[1]-価格クローズ[1])が5ポイントを持っているなら、これは非常に大きなキャンドルである - 次にプログラムを開始します。

CheckForOpenS2();私たちの価格は私たちのキャンドル(シナリオ2)の上に+ 14ポイントを取得した場合、購入関数を起動します。



私はこの魔女にすべてのキャンドルにしたい、私は私が小さすぎるキャンドルを持っている場合、私は大きなキャンドルを持っている場合、私は次のために待機することになりますプログラムを購入する開始したい。

だから...これは正しいのですが、私はアイデアを持っている:)

必要ないことを書かないでください。

int start() // start program 
   
double bear() // check first candle -mabey is bear? = THIS IS aur NEW function title bear body is in()
   {     // start body
      double A=Open[1];  // stay Open[1] is changeable A
      double B=Close[1];  // stay Open[1] is changeable A    
      double C=A-B;         // result
      return(C);              // take result C and put in to function bear()
   }                              //end body, NOW bear is aur C example 6 or 89 ;212; 1; 2;..;;;.
   
double bull() // check first candle -mabey is bull
   {
      double A=Open[1];   // we use double because euro/usd have point example 1.9865
      double B=Close[1];     
      double C=B-A;
      return(C);
   }

// when we have bull catalog/ segregate  him..
switch(bull())
      { 
         case 1 : break;            // nothing happen
         case 2 : break;            // nothing happen
         case 3 : break;            // nothing happen
         case 4 : CheckForOpenS1(); break; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break; // start CheckForOpenS2() and S3 ....
      }

// when we have bears catalog/segregate him..
switch(bears())
      { 
         case 1 : break;
         case 2 : break;
         case 3 : break;
         case 4 : CheckForOpenY1(); break;// start CheckForOpenY1()- take it and go thrue with this.. we will see want is '...Y1'
         case 5 : CheckForOpenY2(); CheckForOpenY3(); break; // start CheckForOpenY2() and Y3
      }


return(); // exit program wait for new tip, and ower and ower ....
}  // end


 
 

英語を母国語としない人たちは、あなたの話を理解できると思いますか?私は羊と羊飼いのジョンさんはわかるのですが、お話が意味不明です。(私のせいかもしれませんが...すみません)。

トレーディング/mql4の一般的な定義を使って、あなたの問題を「国際英語」で説明していただけませんか?

この文章は何を意味するのでしょうか?

<br / translate="no">PLEASE DO NOT WRITE TOPIC this well be handbook for the rest people(トピックを書かないでください。
 
kronin:

英語を母国語としない人たちは、あなたの話を理解できると思いますか?私は羊と羊飼いのジョンさんはわかるのですが、お話が意味不明です。(私のせいかもしれませんが...すみません)。

トレーディング/mql4の一般的な定義を使って、あなたの問題を「国際英語」で説明していただけませんか?

この文章は何を意味しているのでしょうか?

Kronin、おそらくそれはオンライン翻訳者のエラーだった、それはフォーラムで常に起こった。
 

ONLY CANDLE - ポジションを開くには?- を次のテーマとします。司会者:どうでしょう?

選択した シナリオを実行 します。
注文の出し方は?

int start() // start program 
{

// We have some function here like "int CalculateCurrentOrders(string symbol)" and  "double LotsOptimized()"
// many different thing, suddenly! we have our "CheckOpen();" 

//--------------------------------

void CheckOpen()      // void - because function return nothing
{                     // start body
   int    res;        // we will use changeable "res" this is "int" value
   if( Bid==Close[1]+4*Point)  // check conditions: Bid or Ask must be 4 Point above a BAR if no - nothing happen if Yes go below
     {               // start body if
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,Open[1]+37*Point,0,"",MAGICMA,0,Red);  // start "res" and "res" is sending message to platform to open position 
                     // what position is in "()" allways must be the same sequence symbol , op_*** , lot size , ...)
      return;        // if "res" do it then retunrn too ... y ... "if". Because "if" is done return too CheckOpen(). Because "CheckOpen()" is done stop and end.
     }               // stop body if

  }                  // stop body function "void CheckOpen()"
  
//-------------------------------- 

注文は1 つです。
しかし、1つの関数で 2つのポジションを開くにはどうすればいいのでしょうか?
シナリオはCheckForOpenS1()で、価格が正しい位置にあれば2回 買う。

//--------------------------------  


 
void CheckOpen1()      // define first function
{                     
   int    res;       
   if( Bid==Close[1]+4*Point)  
     {               
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red);  
                     
      return;        
     }               

}   
  
void CheckOpen2()      // define second function
{                     
   int    res;       
   if( Bid==Close[1]+8*Point)  // change 8 Point ( 4 ==> 8 )
     {               
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red);  
                     
      return;        
     }               

}   

//       I DONT KNOW..............

//--------------------------------  / our scenario  
void CheckForOpenS1()= true;      
 
  void CheckOpen1()
  void CheckOpen2()
  
  
//--------------------------------  / OR LIKE THESE
int res;
if ( CheckForOpenS1() == true)
 {
 res= CheckOpen1() CheckOpen2();
 }
 
Wodzuuu:

ONLY CANDLE - ポジションを開くには?- を次のテーマとします。司会者あなたは何を考えているのですか?

我々は選択した シナリオを実装
どのように注文を送信するには?

我々は、 1つの注文を持っている
しかし、私は1つの関数で2つのポジションを開くために何をすべきか?
我々はシナリオを持っている CheckForOpenS1() これらのシナリオで我々は価格が正しい場所になる場合はもちろん、2回購入 する。

私はあなたが求めているものを本当に理解していない... ...あなたは非常に明確に自分自身を作っていない... ...または多分それは私だけです。

このコードは、しかし、あなたの問題を引き起こすでしょう ... ...

if( Bid == Close[1] + 4 * Point)

このスレッドを読む:価格することができます!=価格?

 

そうで ないかもしれない
イベントの いくつかの シナリオで 簡単な EAを 書く方法

小さな ろうそくでした - 機能1を 開く
平均的な ろうそく でした-機能2を 開く
大きな ろうそく でした-機能3を 開く


スイッチ( )はこの時点で 適切な 、私は思います

機能1は 1 ポジションを 開き それが 閉じる ことを確認
2は それらを 守る 2ポジションを 開き 、閉じる
3は 2ポジションを 開くが、 異なる価格で...

我々は キャンドルを持って
いるたびに 毎回 異なる ことを 行う 別の関数が 存在します。

私は あなたが 私のために 書く ことができないことを知って いるが、 任意のアドバイス....

 

約束通り、もう一度見てみたが、やはり意味がわからない、申し訳ない。

これは決してうまくいかないでしょう。

double bull() // check first candle -mabey is bull
   {
      double A=Open[1];   // we use double because euro/usd have point example 1.9865
      double B=Close[1];     
      double C=B-A;
      return(C);	// <-- C is probably never 1,2,3,4,5.....
   }

// when we have bull catalog/ segregate  him..
switch(bull())		// <-- the expression here is something like 0.00123. None of your case statements will be executed.
      { 
         case 1 : break;            // nothing happen
         case 2 : break;            // nothing happen
         case 3 : break;            // nothing happen
         case 4 : CheckForOpenS1(); break; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break; // start CheckForOpenS2() and S3 ....
      }

スイッチの使い方についてはこちらをご覧ください: https://docs.mql4.com/basis/operators/switch

これでは全く分かりません。

void CheckOpen2()      // define second function
{                     
   int    res;       
   if( Bid==Close[1]+8*Point)  // change 8 Point ( 4 ==> 8 )
     {               
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red);  
                     
      return;        
     }               

} 

等号の表現は好ましくないかもしれませんが、どうあるべきなのでしょうか?

もし < と読めれば、新しいバーが来たときにすぐに売り注文を出します(新しいバーの始値が前のバーの終値+8*Point よりも < である可能性があるため)。
もし>と表示されたら、価格が少し上昇するのを待って売り注文を出します。私はあなたの戦略をよく理解していないので、おそらくこのようにしたかったのでしょう。

という意味も想像できます。

if(Bid<Close[1]-8*Point)   

1 ポイントが 1 ピップに相当する 4 桁のブローカーで取引されていますか?そうでなければ、価格は0.8ピップだけ動かなければならず、おそらくあなたが望むものではありません。

もう一度コードを確認し、修正できるところは修正してください。 具体的な質問がある場合は、遠慮なくご質問ください。あなたのストラテジーは、コーダーがあなたの言いたいことを誤解したために、全く別の動作をする可能性があることを認識しておいてください。

 

私の 戦略は次のとおりです
ろうそくは 4から5ポイントに 強気で 表示さ れた場合 ろうそくの (これまで 任意の条件の 下で 2買い 注文を 送信 する準備をする 価格は 1を 購入するために 私たちの 必要な レベルに到達 した場合、および buy2に 到達 する 方法

ろうそくが 6から7ポイントに 強気 表示さ れた場合 ろうそくの(これまで 任意の 条件の下で 3買い注文を 送信 する準備を しなさい価格は 1を 買うために 私たちの 必要な レベルに到達 した場合、および 購入2および3に 到達 する 方法

私は 入札の どこかに小さな ミスを持って いるか、 EAが 動作しない 理由を 尋ね ...(私は このエラーを 見つける ことができませんが、通常 EAは 私が書いたものの ために 非常によく動作 します... 買うと 閉じる) しかし、それは 私の 技術的な 計画を示して います

私はそれが今で動作するように修正する

あなたが 底を 見ると、それは非常に 混雑し、 時には EA Bull4の シナリオを 置き換え シナリオは Bull6 Bull4を 開き 、私は それが 突然 あなたの心を 変更 し、 Bull6 Bull6を 終了 実現 したよう
それは 簡素化 することができますか?

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#define MAGICMA  20050610


//+------------------------------------------------------------------+
//| Calculate open positions    HOW MEANY OF THIS                    |
//+------------------------------------------------------------------+

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY) buys++;
        }
     }
//---- return orders volume
   return(buys);
  }

//+------------------------------------------------------------------+
//| Calculate candle                                                 |
//+------------------------------------------------------------------+
bool BULL4()
   {
   if(Close[1]-Open[1]>=4*Point && Close[1]-Open[1]<=5*Point)
   return(true);
   } 

bool BULL6()
   {
   if(Close[1]-Open[1]>=6*Point && Close[1]-Open[1]<=7*Point)
   return(true);
   }
      
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
 
void CheckForOpenBULL41()
  {
   int    res;
   if(Bid==Close[1]+3*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.41,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Blue);
      return;
     }
  }
  
void CheckForOpenBULL42()
  {
   int    res;
   if(Ask>OrderOpenPrice()+2*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.42,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Blue);
      return;
     }
  }  
  
void CheckForOpenBULL61()
  {
   int    res;
   if(Bid==Close[1]+4*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.61,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red);
      return;
     }
  }
  
void CheckForOpenBULL62()
  {
   int    res;
   if(Ask>OrderOpenPrice()+2*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.62,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red);
      return;
     }
  }

void CheckForOpenBULL63()
  {
   int    res;
   if(Ask>OrderOpenPrice()+2*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.63,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red);
      return;
     }
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+

void CheckForCloseBULL()
{
   RefreshRates();
   if(OrderOpenPrice()+4*Point< Ask)
   for (int i = OrdersTotal(); i >= 0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (OrderSymbol() == Symbol()) 
      {
         bool ticket = true;
         if (OrderType() == OP_BUY) ticket = OrderClose(OrderTicket(),OrderLots(),Bid,1,Black);

      }
   }
} 

  
  
//+------------------------------------------------------------------+
//| Start function                                 |
//+------------------------------------------------------------------+
void start()
  {
   
   if(BULL4()==true && CalculateCurrentOrders(Symbol())==0) CheckForOpenBULL41();
   else                                    CheckForCloseBULL();

   if(CalculateCurrentOrders(Symbol())==1) CheckForOpenBULL42();
   else                                    CheckForCloseBULL();
   
   //---//
   
   if(BULL6()==true && CalculateCurrentOrders(Symbol())==0) CheckForOpenBULL61();
   else                                    CheckForCloseBULL();

   if(CalculateCurrentOrders(Symbol())==1) CheckForOpenBULL62();
   else                                    CheckForCloseBULL();
   
   if(CalculateCurrentOrders(Symbol())==2) CheckForOpenBULL63();
   else                                    CheckForCloseBULL(); 
    
   if(CalculateCurrentOrders(Symbol())==3) CheckForOpenBULL63();
   else                                    CheckForCloseBULL(); 
       
   if(CalculateCurrentOrders(Symbol())==4) CheckForCloseBULL();
  }
//+------------------------------------------------------------------+

 
Wodzuuu:

私の 戦略は次のとおりです
ろうそくは 4から 5にBYK 表示 された場合 ろうそくの後に (これまで 任意の条件の 下で 2つのデータの 購入注文を 送信 する準備を する価格は 1を 購入する 私たちの 必要な レベルに達した場合、および zkup 2に 到達 する方法

ろうそくは 6から7に BYK 表示さ れた場合 ろうそくの 後に(これまで 任意の 条件の下で 3つの 買い注文を 送信 する準備を なさい価格は 1を 購入するために 私たちの 必要な レベルに到達 した場合、および zkup 2と 3に到達 する 方法

私は 入札の どこかに小さな ミスを持って いるか、 EAが 動作しない 理由を 尋ね ...(私は このエラーを 見つける ことが できませんが、通常 EAは 私が書いたものの ために 非常によく動作 します... 買うと 閉じる) しかし、それは 私の 技術的な 計画を示しています

あなたが 底を 見ると、それは非常に 混雑し、 時には EA Bull4の シナリオを 置き換え シナリオは Bull6 Bull4を 開き 、私は それが 突然 あなたの心を 変更 し、 Bull6 Bull6を 終了 実現 したよう
それは 簡素化 することができますか?

BYK ?

これは間違っている ... .

for (int i = OrdersTotal(); i >= 0;i--)

... ポジションは0から始まるので、OrdersTotal() - 1からカウントダウンする必要があります。


これをやると ... ... ...

void CheckForCloseBull()           // close ALL AT ONCE buy of course
{
   RefreshRates();
   if(  OrderOpenPrice()  > Ask+6*Point)

. ..OrderOpenPrice() を取得しますが、どの注文に対してでしょうか? 複数の注文を開いていることになります。



あなたはOrderSend()呼び出しからの戻り値を保持するために変数resを 使用しています ... そして、あなたはそれをどうしますか? 何もしません、なぜですか?

関数の戻り値とは 何ですか?どのようにそれらを使用するのですか?

 

非常に 良い回答 RaptorUK


1。RESの問題
私はEAの 移動平均の 解像度を勉強して いる唯一の3倍 時間の 関数としてすべて それが 存在しない ために です

度目は 「こんにちは たちは再利用 れます」という情報のために 使用さ れます

2 回目は注文を 送信するために 使用されます。OrderSendは 私たちの res = 343321、abowe 関数'void CheckForOpen () " resが 存在しないされている 注文の 数を返します

しかし...
私は"ボイド CheckForOpen ()"場合 だと思いますこの コマンド OrderSelectの 真実を 観察 する何とかして "ボイド CheckForOpen()" 私は しようと する 以外の その番号を持って 来る....

2.OrderOpenPrice() の問題

あなたの言う とおり しかし、 この構文は 驚くほどよく動作します :) 私は その場所で何かをしようとします。

3.OrdersTotal() - 1おっしゃる とおり です。

4.BYK(ポーランド)= BULL翻訳者に問題があります。

 

まだ 私の EAを 理解して いない人のために 物語を 書く。D hehehehe


私たちが 行うすべての ステップは 関数 です私は今コンピュータで 文章を書いて いますが、これは1つの 機能です私は テレビ 番組を見て いますが、これは2番目の 機能 です
のは、台所に 移動してみましょう...
我々は、料理の本を持って、 目次を 開き 順次 ポイントを 読み取る
ポークチョップの 作り方第一弾 - ボウルに 肉を 入れ、塩 コショウ、皮 ジャガイモを追加
左側の イベント - 右の 機能、 および テーマのいくつか - いいえ、 簡単に 限りません


ポークチョ ップを作る方法を読んだ後物事を行うために それを 行う ために開始 します ステーキは 25分を 取得 私は 終わりを 持つ ように なった
それは 5分 M5(5分後)我々は 料理の 本を読んで次の点を開始 されています
第二回 サラダの 作り方 - ニンジンの タマネギのその他の くだもの


そして、ここで 魔法が 起こる それは ダブル、メープル (二人称)を 作成した ため です 我々は同時に ポーク チョップと サラダに これを 行います。 たちは、1つ で2人 キッチンで持って開始 します。

ポイントを 読めば読むほどキッチンの 人が 登場 します。キッチンの 人々はその職務を 完了 し、食器を洗浄 した後に 消えます


イベントは キャンドル です - 購入と販売 または閉鎖の ための様々な オプションを備えて います。

理由: