どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 221

 
penzacity:

このようなことが可能であることをフォーラムで見つけました: https://www.mql5.com/ru/forum/141467

また、ティックエミュレーターはどこにあるのでしょうか?

つまり、MQL4で週末にティックエミュレーションを実装することは不可能なのでしょうか?

投稿にあるリンク先のページにあります。よく読んでみてください。
 
artmedia70:
ただ、そのページには、あなたが投稿したリンクが貼られています。そこをもっとよく読んでみてください。

そう、私は愚かだった。init(){}経由で追加でstart(){}すればいいだけなんですが...。

int init(){start();}。

...

void start(){...}。

ありがとう、わかったよ。

 
やべぇ・・・俺ってバカだなぁ)))init()、deinit()、start()関数にはむやみに触れない ようにしましょう。偉大なメタクオーターが教えてくれる方法だけ)))
 
ボーナスをお金に換えるには?
 
Alexs65:
ボーナスをお金に換えるには?

ボーナスは誰のもの?
 

以下のようなコードがあります。

extern datetime start = D'2013.10.17 23:59'。

int start()

{

int b1=iBarShift(Symbol(),0,start,0)。

double hb=iHigh(Symbol(),0,b1); //バー

double hb2=iHigh(Symbol(),0,b1-1); //指定した日付から明日のバー

double hb3=iHigh(Symbol(),0,b1+1); がうまくいかないので、指定した日付から昨日の日を入れる方法を教えてください......。

 

みなさん、こんにちは!!!私は、動きに対してEAオープニングの注文を持って、どのように変更したり、変更する場所をアドバイスする?

文字列 GLOB_START;

int init()
{
GLOB_START = "@" + DoubleToStr(ID,0) + "@" + "_start";
if !GlobalVariableCheck( GLOB_START )GlobalVariableSet(GLOB_START,TimeCurrent()).GlobalVariableSet( GLOB_START,TimeCurrent());
return(0)です。
}

int deinit()
{
switch( UninitializeReason() )
{
caseREASON_REMOVE: delete_glob ("@" + DoubleToStr(ID,0) + "@" );
}
if ( IsTesting() )delete_glob ("@" + DoubleToStr(ID,0) + "@" );
return(0)です。
}

void delete_glob ( string c )
{
int i;
for ( i = GlobalVariablesTotal()-1; i>= 0 ; i-- )if ( StringFind(GlobalVariableName(i),c) >= 0 )GlobalVariableDel(GlobalVariableName(i))
}

int start()
{
コメント(Info())です。
int KOL_BUY = order_total(0);
int KOL_SELL = order_total(1);
ダブルエル

if ( order_total() == 0 ) )
{
open(0,Lot,0,TP)です。
open(1,Lot,0,TP)です。
}

if ( KOL_BUY == 0 && KOL_SELL != 0 )
{
open(0,Lot,0,TP)です。
l = last_trade(1);
open(1,l,0,0)です。
modify_orders(1);
}

if ( KOL_BUY != 0 && KOL_SELL == 0 )
{
open(1,Lot,0,TP)です。
l = last_trade(0);
open(0,l,0,0)です。
modify_orders(0);
}

return(0)です。
}

文字列情報()
{
int i;
double buff_1 = 0, buff_2 = 0, buff_3 = 0;
文字列 res = "ⅷ";

for( i = OrdersHistoryTotal() - 1; i >= 0; i-- )
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if( オーダーマジック番号() == ID )
{
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,0) )buff_1 += OrderProfit();
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,1) && OrderOpenTime() < iTime(NULL,PERIOD_D1,0) )buff_2 += OrderProfit().PERIOD_D1,0 )。
if ( OrderOpenTime() >= GlobalVariableGet(GLOB_START) )buff_3 += OrderProfit();
}
}

res = res + "入金通貨での利益" + TimeToStr(iTime(NULL,PERIOD_D1,0)) + ": " + DoubleToStr(buff_1,0) + "\n" + "\n "となる。
res = res + "入金通貨での利益" + TimeToStr(iTime(NULL,PERIOD_D1,1)) + ": " + DoubleToStr(buff_2,0) + "\n" + "\n" です。
res = res + "預金通貨での利益合計:" + DoubleToStr(buff_3,0) + "\n";
return(res)です。
}

void modify_orders( int type )
{
int i;
datetime time_last = 0, time_first = TimeCurrent();
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT), op_pr_last, op_pr_first, level.を使用します。

for( i = OrdersTotal() - 1; i >= 0; i-- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type )
{
if ( OrderOpenTime() > time_last )
{
op_pr_last = OrderOpenPrice();
time_last = OrderOpenTime();
}
if ( OrderOpenTime() < time_first )
{
op_pr_first = OrderOpenPrice();
time_first = OrderOpenTime();
}
}
}


if ( type == 0 )level = op_pr_last + MathAbs(op_pr_last-op_pr_first) * (SL/100);
if ( type == 1 )level = op_pr_last - MathAbs(op_pr_last-op_pr_first) * (SL/100);

for( i = OrdersTotal() - 1; i >= 0; i -- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type && NormalizeDouble(OrderTakeProfit(),Digits) != NormalizeDouble(level,Digits) )オーダーモディファイ(OrderTicket()、OrderOpenPrice()、OrderStopLoss()、レベル、0))
}
}

double last_trade( int t )
{
int i;
double res = -1;
datetime time=0;

for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderOpenTime()>time && OrderMagicNumber()==ID && OrderType() == t)
{
res = OrderLots();
time = OrderOpenTime();
}
}
if ( multiplier )return(res * Lot_koeff);
if ( !multiplier )return(res + Lot_koeff);
}
int open(int type, double l, double sl=0, double tp=0, string comm = "")
{
int isOpened = 0, try = 0;
二重のs,t。
while ( IsTradeContextBusy() ){Sleep(500);}。
RefreshRates()。
if ( sl != 0 && sl < MarketInfo(Symbol(),MODE_STOPLEVEL) )sl = MarketInfo(Symbol(),MODE_STOPLEVEL);
if ( tp != 0 && tp < MarketInfo(Symbol(),MODE_STOPLEVEL) )tp = MarketInfo(Symbol(),MODE_STOPLEVEL).Tp ( tp != 0 && tp < MarketInfo(Symbol(),MODE_STOPLEVEL));
if ( type == 0 )
{
if ( tp == 0 )t = 0;
if ( tp != 0 )t = Ask + tp * Point;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = Bid - sl * Point;
}
if ( type == 1 )
{
if ( tp == 0 )t = 0;
if ( tp != 0 )t = Bid - tp * Point;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = Ask + sl * Point;
}
s = NormalizeDouble(s,Digits)とする。
t = NormalizeDouble(t,Digits)とする。
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID)。
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID)。
Sleep(500)です。
while(isOpened<0)
{
while ( IsTradeContextBusy() ){Sleep(500);}。
RefreshRates()。
if ( type == 0 )
{
if ( tp == 0 )t = 0;
if ( tp != 0 )t = Bid + tp * Point;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = Bid - sl * Point;
}
if ( type == 1 )
{
if ( tp == 0 )t = 0;
if ( tp != 0 )t = Ask - tp * Point;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = Ask + sl * Point;
}
s = NormalizeDouble(s,Digits)とする。
t = NormalizeDouble(t,Digits)とする。
try++です。
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID)。
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID)。
if(try > 5) break;
if(isOpened>=0)break。
Sleep(500)です。
}
if(isOpened<0) Alert("Order not opened, error :", GetLastError());
return(isOpened)とする。
}

int order_total( int type_1 = -1, int type_2 = -1 )
{
int i;
int kol=0;
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==ID && (OrderType() == type_1 || OrderType() == type_2)))コル++。
if(OrderMagicNumber()==ID && type_1 == -1 && type_2 == -1 )kol++;
}
return(kol)です。
}

double check_lot(double &lo)
{
double l = MarketInfo(Symbol(),MODE_LOTSTEP)。
int ok = 0;
while ( l < 1 ){l*=10;ok++;}。
if( lo < MarketInfo(Symbol(),MODE_MINLOT) )lo = MarketInfo(Symbol(),MODE_MINLOT)とする。
if( lo > MarketInfo(Symbol(),MODE_MAXLOT) )lo = MarketInfo(Symbol(),MODE_MAXLOT);
return(NormalizeDouble(lo,ok))とする。

 
皆さん、ごきげんよう。私はAlpariとMaster_Forexで動作する場合、私は私の仕事の端末からダウンロードしたストーリーでExpert Advisorをテストし、私を啓発してください、外部から何も、Dukasから、ティックデータスイートのような補助プログラム、ちょうど90%モデリング私のDS特にAlpariまたはマスター_Forex、メソッドの端末から。 私は別の条件やパラメータで半年間テスト、最善を選択してからバックテストと次の半年、だから2-5年後に山の中ですべてとフクロウが用意されています。これは信頼できるプレパラートと言えるのか、それともやはり99%、付属のものが必要なのか。
ありがとうございます!!!........
 

Funds:"(AccountEquity())のトローリングはどのように行うのですか?

パラメータ

extern double TrailingStart = 10000; // トレイリングレベル
extern double TrailingStop = 100; // トレイリングサイズ
extern double TrailingStep = 10; // トレイリングステップ

 

上下に2つ並んだフラクタルはどうやって見つけるのですか?下の写真です。

インジケータを書こうとしたのですが、よく考えずに書いてしまいました。

//+------------------------------------------------------------------+
//|                                           Dvigubas fraktalas.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_buffers 1

double FRACTAL[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,119);
   SetIndexBuffer(0,FRACTAL);
   SetIndexLabel(0,"Fractal");
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   int limit;
   
   
   
//---- последний посчитанный бар будет пересчитан
   if(counted_bars > 0) 
       counted_bars--;
   limit = Bars - counted_bars;
//---- основной цикл
   for(int i = limit; i > 0; i--)
     {           
         int f1 = GetFractal("", 0, 0);
         int f2 = GetFractal("", 0, 1);
         
        if( f1 == 1 && f2 == 1) FRACTAL[i] = High[i]+100*Point;
        else 
         if( f1 == 0 && f2 == 0) FRACTAL[i] = Low[i]- 100*Point;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
        |
//+----------------------------------------------------------------------------+
int GetFractal(string sy="0", int tf=0, int nf=0) 
{
  if (sy=="" || sy=="0") sy=Symbol();
  int f=-1;
  int    i, k=iBars(sy, tf), kf;
  for (i=3; i<k; i++) 
  {
    if(iFractals(sy, tf, MODE_UPPER, i)>0)f=1;
    else
      if(iFractals(sy, tf, MODE_LOWER, i)>0)f=0;
    kf++;
    if (kf>nf) return(f);    
  }
  
}

もしかしたら、そんなインジケーターを用意したのを見たことがある人がいるかもしれません。