mql4アドバイザーを無料で書かせていただきます。 - ページ 3

 
Andrey Vaskin:
この分野の経験を積むために、あなたの面白いアイデアや戦略を参考に、25のEAを無料で書きます。

1.価格を見てみる cupFORTS.


2.1分以内に赤いバーが青いバーの3倍*になったら買い。その逆なら売り。


3.買ったポジションを決済する-1分間に青いバーが赤いバーの3倍になったら1分以内に、赤いバーが青いバーの3倍になった場合、売られたポジションを決済する。


4)このサイクルが繰り返される。

---


*3回以上を意味します。

"3回 "と "1分 "は、owlパラメータで設定する必要があります。

StopLossも必要です。

スタック(売り注文/買い注文の量)の写真。

また、数量は市場概況から取得することができます。

 
Alexander Pavlov:

1.プライスグラスを見る。


2.1分以内に赤いバーが青いバーの3倍*になったら買い。その逆なら売り。


3.購入したポジションを決済する-1分間に青いバーが赤いバーの3倍になった場合。1分以内に、赤いバーが青いバーの3倍になった場合、売られたポジションを決済する。


4)このサイクルが繰り返される。

---


*3回以上を意味します。

"3回 "と "1分 "は、owlパラメータで設定する必要があります。

StopLossも必要です。

スタック(売り注文/買い注文の量)の写真。

また、数量は市場概況から取得することができます。

これはMT5で、筆者はMT4でのタスクしか聞いていない。
 
Vitaly Muzichenko:

ストキャスティクス、RSI、MACD、その他オシレーターと呼ばれるジャンクなもので、非常にうまくストーリーを描いていますが、利益を上げるどころか、残高を維持したExpert Advisorには一度も会ったことがありません。

しかし、何かを期待している人たちは、このような無駄な指標を常に作り出しているのです。

数年間もMTのバージョンを変えて来るのは、とても不思議なことだと思います。誰が必要としているのか?おそらくサンプルプログラムのコードだと思うのですが、それを使って取引しようと考える人がいるのでしょう )))

ジャンク?OK、ジャンクでない例を教えてください。また、あなたが見ていないからといって、それが存在しないとは限りません。
 
Tapochun:
ジャンク?では、ゴミでないものの例を挙げてください。また、見ていないからといって、ないとは言い切れません。
ジャンクでないのはローソク足パターンについてだけです。
 
Vitaly Muzichenko:
水切りしないのはローソク足パターン上だけだな。
私のも消耗してないし、あなたの言葉です。 と、そこにはパターンがないのです。
 
Leanid Aladzyeu:
私のも流れないし、それはあなたの言葉です。 とパターンがない。
今のところ、数学というわけではありません。純粋な指標について書きました。あなたのは良いですね。
 

ヘルプフィックス

EAが4つの未決済注文を出す

2 買いと売りのストップ

2 売買限度額

保留中の注文を入れ替える方法がわからないのですが、どの距離で注文を出せばいいのかわかりません。

買いポジションと売りストップで同じことが起こる

すべての注文が行われた後、新しい注文がトリガーされる前に、新しい注文が行われる必要があります。

負けが多いけど、注文を入れ替えたらマイナスになりそう。


//| iiiiiiiii_buy_sell.mq4

//||

//||

//+------------------------------------------------------------------+

extern int N = 100; // ベイとセラー(別々に数える)は、それぞれ100個を持つことができます。


extern double Lots = 0.01; // ロット


extern int PROF = 100; // トロールストップ、100pipsの利益で開始する。

extern int TS = 200; // 価格の後ろのストップで引きます。

extern int STEP = 200; // 入札間距離

extern int TP = 10000; //オーダーを取る

extern int SL = 10000; // 注文を受ける

extern bool Buy = false; // 買うのみ

extern bool Sell = true; // 売却のみ

extern double PROSADKA = 0.5; // 自己資本が残高に対してこの割合以下である場合

extern int magicbuy = 777;

extern int magicsell = 888;


int M;

double buystop_OP, sellstop_OP;

double selllimit_OP, buylimit_OP;


int start()

{

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


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

// どんなオーダーがあるか見てみよう

int buy = 0,sell = 0;

int buystop = 0,sellstop = 0;

int selllimit = 0,buylimit = 0;

int buys = 0, sells = 0;

int Total = 0;

for(int i = 0; i < OrdersTotal(); i ++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) continue;

if(OrderType() == OP_BUYSTOP)

buystop = OrderTicket();

if(OrderType() == OP_BUYLIMIT)

buylimit = OrderTicket();

if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)

は、+αを購入します。

if(OrderType() == OP_SELLSTOP)

sellstop = OrderTicket();

if(OrderType() == OP_SELLLIMIT)

selllimit = OrderTicket();

if(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )

は+αを販売します。

合計+α。

}

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

int LET = 0;

if (AccountEquity()/AccountBalance() < PROSADKA)

LET = 1; // ドローダウンが大きい場合、新規のポジションを置くことを禁止する。

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

// 新しいトレードを設定する :

if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // 1分間に1回

{

if ( buystop < 1 && buys < N && Buy == true)

{

buystop_OP =NormalizeDouble(Ask+STEP*Point,Digits)。

buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,blue)。

}

if ( buylimit < 1 && buys < N && Buy == True)

{

buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits)。

buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red) です。

}

if ( sellstop < 1 && sells < N && Sell == true)

{

sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits)。

sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);

}

if ( selllimit < 1 && sells < N && Sell == True)

{

selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits)。

selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue) とします。

}

M = iTime(Symbol(),1,0)とする。

}

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

// 注文が価格からTS以上離れている場合、それを価格に近づけるようにドラッグする :

if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)

OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue) を実行しました。

if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < ビッド - TS*Point)

OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange) を実行しました。

if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > ビッド + TS*Point)

OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue) を実行しました。

if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)

OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange) を実行しました。

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

// もし注文の利益がPROFストップより大きく、価格からTS以上離れている場合、このストップを価格の後ろにトロールする。

for(i = 0; i < オーダートータル(); i ++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits))

OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask-TS*Point,Digits),OrderTakeProfit(),0,Blue)。

if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits))。

オーダーモディファイ(オーダーチケット()、オーダーオープン価格()、NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(), 0,Red)。

}

return(0)です。

}

 

コードはこのような形式(SRC)である必要があります。

//|                                   iiiiiiiiiiiiiiiii_buy_sell.mq4 |

//|                                                                  |

//|                                                                  |

//+------------------------------------------------------------------+

extern int N = 100;       // баев и сэллов (считаем отдельно) разрешаем по стока штук иметь



extern double Lots = 0.01;  // лот



extern int PROF = 100;    // тралить стоп начнем с профита во стока пипсов

extern int TS = 200;      // тащить его станем на стока сзади пип за ценой

extern int STEP = 200;    // расстояние меджу отложками

extern int TP = 10000;     // тейк ордеров

extern int SL = 10000;     // тейк ордеров

extern bool Buy = false;    // только покупать

extern bool Sell = true;   // только продавать

extern double PROSADKA = 0.5;   // когда эквити равно или менее вот такой части от баланса

extern int magicbuy = 777;

extern int magicsell = 888;



int M;

double buystop_OP, sellstop_OP;

double selllimit_OP, buylimit_OP;



int start()

  {

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

         



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

             // смотрим, какие ордера у нас есть:

                 int buy = 0,sell = 0;

                 int buystop = 0,sellstop = 0;

                 int selllimit = 0,buylimit = 0;

                 int buys = 0, sells = 0;

                 int Total = 0;

                 for(int i = 0; i < OrdersTotal(); i ++)

                   {

                     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

                        if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) continue;

      

                        

                        

                           if(OrderType() == OP_BUYSTOP)

                              buystop = OrderTicket();

                                

                           if(OrderType() == OP_BUYLIMIT)

                              buylimit = OrderTicket();

                              

                           if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)   

                              buys ++;

                           

                           if(OrderType() == OP_SELLSTOP)

                              sellstop = OrderTicket();

                              

                           if(OrderType() == OP_SELLLIMIT)

                              selllimit = OrderTicket();

                              

                            if(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )

                              sells ++;    

                        

                        Total ++;       

                   }

             

             

           

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

                 int LET = 0;

                 if (AccountEquity()/AccountBalance() < PROSADKA)

                    LET = 1;  // если просадки до фига - запрет на выставление новых отложек

           

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

             // выставление отложек :

             if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // раз в минуту

               {   

                 

                 if ( buystop < 1 && buys < N && Buy == true)

                     {

                        buystop_OP = NormalizeDouble(Ask+STEP*Point,Digits);

                        buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);

                     }

                     

                if ( buylimit < 1 && buys < N && Buy == True)

                     {

                        buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits);

                        buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red);     

                     }

                     

                 if ( sellstop < 1 && sells < N && Sell == true)

                     {

                        sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits);

                        sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);

                     }

                

                if ( selllimit < 1 && sells < N && Sell == True)

                     {

                       selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits);

                       selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue);

                     }

                     

                

                

                 M = iTime(Symbol(),1,0);

               }

             

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

             // еси отложки дальше чем TS от цены, подтаскиваем их поближе :

             if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)

                OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue);

             

             if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)

                OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange);

             

             if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)

                OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue);

             

             if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)

                OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange);

            

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

             // еси профит ордера больше PROF  стоп его дальше чем TS от цены, тралим этот стоп за ценой :

             for(i = 0; i < OrdersTotal(); i ++)

                   {

                     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

                     

                        if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits))

                           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue);

             

                        if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits))

                           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red);

             

                   }

             

          

   return(0);

  }
 
Andrey Vaskin:

この分野の経験を積むために、あなたの面白いアイデアや戦略を参考に、25のEAを無料で書きます。

残り19個のEA

こんにちは、またまたこちらの別スレッドに書かせていただきました。


バイナリーオプションの攻略法がある一般に、その本質は次のとおりです。期間20の移動平均を使って トレンドを特定し、ADXを使ってその強さを定義し(通常、25以上の視覚的値で強いと定義します)、グラフィカルな分析を使ってエントリーポイントを定義します(通常は朝、夕方の星、ハンマー、「ぶら下がった果物」、私はそれらが矛盾していると思うので対称の陰影を持つ童子を考慮しない)。必要なモデルを持つろうそくの終値で、私は5時に入力します(私はD1で6ヶ月間手動で統計をチェックしました:6ヶ月の間にせいぜい1信号。H4はブローカーによってローソク足の終値が異なるため、考慮されていません)。

月の平均各ツール0,7-3%で私が受け取った統計に一般的に(トランザクションは常に預金の1%を入力した)私は手動で5ツールをスキャン(と私はオプションで使用するブローカーは42ツールを持って、多くの仕事を介して手動ですべての統計情報を実行する必要があります)。どこでエントリーして、何時の満期で利益が出たか、どこで負けたかなどを記録したファイルを後でターミナルから投稿することができます。私のブローカーはMT4ターミナルを使用しています。どなたか、この戦略を改善する方法をご存じでしょうか?

説明の中で大まかな考え方を述べましたが、Expert Advisorが期間ごと(例えば月1回)に取引値を自動的に変更できるようになれば良いと思います。

 
Adelaur:
返信時にカーソルが引用フィールドに飛び込んでしまい、出てこないことがある。対処法:フォーラム:返信時にカーソルが引用 文の中に飛んでしまう