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

 

MT4にインジケータを追加する方法を教えてください。


しゃい

 
Garifyanov:

MT4にインジケータを追加する方法を教えてください。


しゃい

ドキュメンテーションや チュートリアルは 役に立たないのですか?
 
artmedia70:
ドキュメンテーションと テキストは 役に立たないのですか?


ありがとうございます、今確認してみます。
 
こんにちは、既知の時間のローソクの高値、安値に2日分の水平線を 引くインジケータが見つかりません。リンクやインジケーターの概要を教えてください。
 

EAが取引されない理由を教えてください。デモに出してみて(苦笑)←動かない。冒頭のテスト時のみ取引可能な機能を削除したようです。

extern double Lots=1.0;

extern int Begin=10;

extern inttern Length=4;

extern int EOD=24;

extern inttern Pips=5;

extern int StopLoss=50;

extern int BreakEven=30;

extern inttern TakeProfit=80。


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

//| エキスパートスタート機能

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

int start()

{

//----

int i,Ticket,LastOrderTime,StartTime,EODTime,Bought=0,Sold=0;

double EntryLong,EntryShort,SLLong,SLShort,TPLong,TPShort;

//設定

if (Symbol()=="EURUSD"){。

Begin=10です。

長さ=4。

EOD=24。

Pips=5です。

StopLoss=50。

BreakEven=30とした。

TakeProfit=80。

}

else if (Symbol()=="GBPUSD"){。

Begin=10です。

長さ=4。

EOD=24。

Pips=5です。

StopLoss=70。

BreakEven=40とした。

TakeProfit=120。

}

else {

Begin=10です。

長さ=4。

EOD=24。

Pips=5です。

StopLoss=50。

BreakEven=30とした。

TakeProfit=80。

}


//カウントタイム

if(Hour()>=Begin-1)とする。

{

StartTime= StrToTime(Begin+":00")。

if(DayOfWeek()==5) EODTime = MathMin(StrToTime("22:55"),StrToTime(EOD+":00"));

else EODTime = StartTime+(EOD-Begin)*3600-60;

}

/Setオーダー

if(CurTime()>= StartTime && CurTime()<StartTime+300){。

//範囲を決定する

EntryLong =High[Highest(NULL,0,MODE_HIGH,Length*60/Period(),0)]+(Pips+MarketInfo(Symbol(),MODE_SPREAD))*Point.Pips+MarketInfo(Symbol(),MODE_SPREAD))*Point;

EntryShort =Low [Lowest (NULL,0,MODE_LOW, Length*60/Period(),0)]-Pips*Point;

SLLong =MathMax(EntryLong-StopLoss*Point,EntryShort)。

SLShort =MathMin(EntryShort+StopLoss*Point,EntryLong)となります。

TPLong =EntryLong+TakeProfit*Point;

TPShort =EntryShort-TakeProfit*Point;

//注文を確認する

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

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUY)))買った++。

if(Bought>1){//買い注文が1件以上ある場合

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000)。

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket().OrderTicket);

}


if(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELL))売約済み++。

if(売り>1){ //売り注文が 1件以上ある場合

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000)。

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,赤);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket()).

}

}

if(Bought=0){//買い注文なし

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000)。

チケット=OrderSend(Symbol(),OP_BUYSTOP,Lots,EntryLong,3,SLLong,TPLong,NULL,0,0,Green)となります。

if(Ticket<0 && GetLastError()==130)

Ticket=OrderSend(Symbol()、OP_BUY、Lots、Ask、3、SLLong、TPLong、NULL、0、0、Green)となります。

GlobalVariableSet("LastOrderTime",OrderOpenTime())です。

}

if(Sold=0){//売り注文なし

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000)。

チケット=OrderSend(Symbol(),OP_SELLSTOP,Lots,EntryShort,3,SLShort,TPShort,NULL,0,0,Green)とする。

if(Ticket<0 && GetLastError()==130)

チケット=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SLShort,TPShort,NULL,0,0,Green)となります。

GlobalVariableSet("LastOrderTime",OrderOpenTime())です。

}

}

//開封済みオーダーの管理

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

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000)。

//このページのトップへ戻る

if(CurTime()>=EODTime){。

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,赤);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket()).

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket()).

GlobalVariableSet("LastOrderTime",CurTime())です。

}

//利益>BEならBEで動く

else {

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY){ (オーダーシンボル()==シンボル() && オーダータイプ()==OP_BUY)

if(High[0]-OrderOpenPrice()>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice() ){。

OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Green)を実行。

GlobalVariableSet("LastOrderTime",CurTime())です。

}

}

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL){ (オーダーシンボル()==シンボル() && オーダータイプ()==OP_SELL)

if(OrderOpenPrice()-Low[0]>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice() ){。

OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Green)を実行。

GlobalVariableSet("LastOrderTime",CurTime())です。

}

}

}

}

//EODでグローバル変数をリセット

if(CurTime()>=EODTime) GlobalVariablesDeleteAll()。

return(0)です。

}

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

 
MT4 FIFTYZNAKをインストールしたのですが、iMAインジケータは4桁になりますが、5桁にするにはどうしたらよいでしょうか。 ご教授ください。
 
MK07:
MT4 FIFTY-ZNAKをインストールしました。iMAインジケータは4つのサインを出しますが、5つのサインを受け取るにはどうしたらよいでしょうか。 、ご教授ください。

5桁の値を持つ。その値を見るには

string DoubleToStr(double value,int digits)

数値を、指定された精度での数値の文字表現を含むテキスト文字列に変換する。

パラメータ


value-浮動小数点型の 値.

digits- 小数点以下の桁数(0~8).


  string value=DoubleToStr(1.28473418, 5);
  // содержимое строки value - "1.28473"
 
laveosa:

ロマンお久しぶりです。試してみたが、うまくいかない、何が悪いのかわからない、視覚的には上記の期間の履歴があるが、テストするとない?:/

F2キーを押しながら、気絶するほどダウンロードしましょう;))
 

移動平均線にタッチしたことをプログラムに表示するにはどうしたらよいですか? 最大値や最小値ではなく、タッチを表示する必要があります。

 
Forexman77:

移動平均線にタッチしたことをプログラムに表示するにはどうしたらよいですか? 最大値や最小値ではなく、タッチを表示する必要があります。

最大(現在)のHigh[0]はMAの上にあり、結果として最小(現在)のLow[0]はMAの下にあります(私の理解では、我々は0番目のバーについて話しています)。