[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 328

 
ФВ > 30 といったパラメータのセットがない場合、Expert Advisor は無駄になってしまいます。

このPVで、同時にトレード数が200以上(買いで100、売りで100)のEAを何本お持ちですか?

純利益」だけでなく、「リカバリー・ファクター」や「最大ドローダウン」を設定し、これらのポジションから見てみると。

MT5では、そのようなものがすでに用意されていて、とても便利でわかりやすいのですが、このプログラムのように「カット」をすることはできません。開発者に頼めばやってくれるのでは...?
 
FelixFX:

こんにちは。

カスタム関数が複数の値を返すようにする方法がわからないのですが?ヒントをお願いします。



これはPascalではないので、手続きはありません...:-)1つの機能、1つの価値...:-)

すべての注文を閉じるには、スクリプトの GetMarketInfo 関数を参照してください - 配列を使用することが可能です。

//+------------------------------------------------------------------+
//|                                               CloseAllOrders.mq4 |
//|                       Copyright © 2008, PRMQuotes Software Corp. |
//|                                           Jedimedic77@gmail.com  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, PRMQuotes Software Corp."
#property link      ""
//+------------------------------------------------------------------+
//| EX4 imports                                                      |
//+------------------------------------------------------------------+
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| global variables to program:                                     |
//+------------------------------------------------------------------+
double Price[2];
int    giSlippage;
bool   CloseOpenOrders = true;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
void start() {
  int iOrders=OrdersTotal()-1, i;
  
  if(CloseOpenOrders) {
    for(i=iOrders; i>=0; i--) {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && (OrderType()<=OP_SELL) && GetMarketInfo() && !OrderClose(OrderTicket(),OrderLots(),Price[1-OrderType()],giSlippage)) Print(OrderError());
    }
  }
}
//+------------------------------------------------------------------+
//| Function..: OrderError                                           |
//+------------------------------------------------------------------+
string OrderError() {
  int iError=GetLastError();
  return(StringConcatenate("Order:",OrderTicket()," GetLastError()=",iError," ",ErrorDescription(iError)));
}
//+------------------------------------------------------------------+
//| Function..: GetMarketInfo                                        |
//+------------------------------------------------------------------+
bool GetMarketInfo() {
  RefreshRates();
  Price[0]=MarketInfo(OrderSymbol(),MODE_ASK);
  Price[1]=MarketInfo(OrderSymbol(),MODE_BID);
  double dPoint=MarketInfo(OrderSymbol(),MODE_POINT);
  if(dPoint==0) return(false);
  giSlippage=(Price[0]-Price[1])/dPoint;
  return(Price[0]>0.0 && Price[1]>0.0);
}
//+------------------------------------------------------------------+
 
Diubakin:

このPVで、同時に200トレード(買い100、売り100)以上のEAをお持ちなのでしょうか?

...

もういいよ。FS=34です。そして実は、それは質問されたことではないのですが......:-)特に、これらの枝を読むと、著者はそこに明確にこれらの数字が書かれています。

TCに30、ポートフォリオに100 - 彼のIMHO...."言葉を捻じ曲げないで ください。そうであるべき だと主張したわけではありません。30は私の個人的な気まぐれです。それ以上はない...。"

 

Roman

...

すみません、他の方の引用に気づかなかったのですが、レポートが印象的です。

 
Diubakin:

すみません、他の方の引用に気づかなかったのですが、レポートが印象的です。


:-)移動する...
 
                           ticket=OrderSend(Symbol(),OP_BUYSTOP ,0.01,Ask+q*Point,5,0,Ask+50*Point,"Aw",MN,0,CLR_NONE);
                           ticket=OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid-q*Point,5,0,Bid-50*Point,"Aw",MN,0,CLR_NONE);
                           if (!ticket) Print(GetLastError());

                        ticket=OrderTicket();                           
                        for (i=OrdersTotal(); i>0;  i--)
                        {
                           if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                           {
                              if (OrderComment()=="Aw")
                              {
                                 if (OrderType()==OP_BUYSTOP)
                                 {
                                    t=OrderModify(OrderTicket(),pb,0,TPb,0,CLR_NONE);
                                    if (!t) Print("BUY О Ш И Б К А = ",GetLastError());
                                 }
                                    
                                 if (OrderType()==OP_SELLSTOP)
                                 {
                                    t=OrderModify(OrderTicket(),ps,0,TPs,0,CLR_NONE);
                                    if (!t) Print("SELL О Ш Ы Б К А = ",GetLastError());
                                 }
                              }
                           }
                        }

よろしくお願いします

このコードでは、2つの未決済注文を開き、両方を修正する必要があります...

しかし、それは塩の保留を修正するだけです。

q=20;

pb=Ask+20*ポイント。

ps=Bid+20*Point。

Tb=Ask+50*Point。

Ts=Bid+50*Pointl;

 
smartemiy:

よろしくお願いします

このコードでは、2つの未決済注文を開き、両方を修正する必要があります...

しかし、それは塩の保留を修正するだけです。

q=20;

pb=Ask+20*ポイント。

ps=Bid+20*Point。

Tb=Ask+50*Point。

Ts=Bid+50*Point。

蓋を開けてみれば

if (OrderType()==OP_BUYSTOP)
{
 t=OrderModify(OrderTicket(),pb,0,TPb,0,CLR_NONE);
 if (!t) Print("BUY О Ш И Б К А = ",GetLastError());
}
                                    
if (OrderType()==OP_SELLSTOP)
{
  t=OrderModify(OrderTicket(),ps,0,TPs,0,CLR_NONE);
 if (!t) Print("SELL О Ш Ы Б К А = ",GetLastError());
 }

現在の価格から 20ポイント上に買い停止と売り停止の両方を置きたい場合

 
ilunga:

数字で見る

buystopとsellstopの両方が現在の価格より20ポイント高くなるようにしたい。

手書きで入力したのですが・・・。

コードでは次のようになります。

pb=Ask+20*ポイント。

ps=Bid-20*Point。

Tb=Ask+50*Point。

Ts=Bid+50*Point。

 
extern int variable = 0;
extern intshift= 0.0000;
extern intshift2= 0.0000;
int init()
{
//----

//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),15,変数,0,MODE_SMA,PRICE_CLOSE,0),シフト,2),Bisque,735,277,0,14))。
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),15,variable,0,MODE_SMA,PRICE_CLOSE,0),shift2,2),Bisque,680,277,0,14)
//----
return(0)です。
}
//+------------------------------------------------------------------+


void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) { { SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) }.
if (ObjectFind(nm)<0) ObjectCreate(nm,OBJ_LABEL, 0, 0,0);
ObjectSetText(nm, tx, fs)です。
ObjectSet(nm, OBJPROP_COLOR, cl)です。
ObjectSet(nm, OBJPROP_XDISTANCE, xd);
ObjectSet(nm, OBJPROP_YDISTANCE, yd)です。
ObjectSet(nm, OBJPROP_CORNER, cr)です。
ObjectSet(nm, OBJPROP_FONTSIZE, fs)です。
}




手首の縦シフト アップとシフト2 ダウンのインデントがうまくいきません。
このパラメータはチャートごとに異なる設定をする必要があります。
コンパイルタイムエラーが発生します。
 
smartemiy:

手書きで入力したのですが・・・。

コードでは次のようになります。

pb=Ask+20*ポイント。

ps=Bid-20*Point。

Tb=Ask+50*Point。

Ts=Bid+50*Point。

TbとTsは、TPbとTPsの意味か? そしてまた、ある方向に進んだが、順序が違う

すべての値を取り出して、何が得られるか見てみましょう。