無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
- ビュー:
- 1237
- 評価:
- パブリッシュ済み:
- 2016.11.02 09:22
- アップデート済み:
- 2016.11.22 07:34
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
この指標は終値に向けた上昇/下降の%を計算します。オブジェクト指向プログラミングが使われており、任意のエキスパートアドバイザーや他の指標への統合は簡易です。
- この指標はは、前日の終値の変化の割合であるCH%を計算します。
- チャートでのオブジェクト作成指標は、オブジェクト指向のプログラミングスタイルで書かれていて、
- 簡単にエキスパートアドバイザーや他の指標に統合されます。クラスを記述してアクティブにするので十分です。
他の指標やエキスパートアドバイザーに統合されたコードのサイズは推定できます。
あるのは2行です。
CChmcYZ chmc;
chmc.RCHsay("EURUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16); // 今日のCH%を計算する
オブジェクト指向プログラミングは大規模な機会を提供します。必要なクラスは書かれており、次にあなたがコンストラクトします..
//+------------------------------------------------------------------+ //| yuraz_mcch.mq5 | //| Copyright 2009, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #property indicator_chart_window ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // CH%クラス計算 // struct SymbolStruct { bool work; string sSymbol; int y; int x; double CH; }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CChmcYZ { public: SymbolStruct sSymb; color lColorSym; color lColorChPlus; color lColorChMinus; color lColorCH; int indicatorWindow; // メインウィンドウで操作する void CChmcYZ() { indicatorWindow=0; lColorSym=DarkBlue; // ダークターコイズ lColorCH=DarkGreen; // 白 lColorChPlus = Green; // ライムグリーン lColorChMinus = FireBrick ; // 赤 } // コンストラクタ void RCH(string sSym,datetime db,datetime de); // 表示なしで1対を完全に計算する void RCHsay(string sSym,datetime db,datetime de,int X,int Y); // 1対を完全に計算して表示する private: color lColor; double dClose[7000]; // 最大の価格をコピーするための配列 }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CChmcYZ::RCH(string sSymbol,datetime DATEBEG,datetime DATEEND) { sSymb.CH = 0; int CountBar; DATEBEG = StringToTime( TimeToString(DATEBEG,TIME_DATE)); DATEEND = StringToTime( TimeToString(DATEEND,TIME_DATE)); CountBar= CopyClose(sSymbol,PERIOD_D1,DATEEND,2,dClose); if(CountBar>=0) { if(NormalizeDouble(dClose[1],5)!=0.0 && NormalizeDouble(dClose[0],5)!=0.0) { sSymb.CH=(dClose[1]*100)/dClose[0]-100; } } } //+------------------------------------------------------------------+ //| 撤退の計算 //+------------------------------------------------------------------+ void CChmcYZ::RCHsay(string sSym,datetime db,datetime de,int XD,int YD) // 1対のみの完全な計算 { RCH(sSym,db,de); if(ObjectFind(indicatorWindow,"oYZ"+sSym)==-1) { ObjectCreate(indicatorWindow,"oYZ"+sSym,OBJ_LABEL,indicatorWindow,0,0); ObjectSetInteger(indicatorWindow,"oYZ"+sSym,OBJPROP_XDISTANCE,XD); ObjectSetInteger(indicatorWindow,"oYZ"+sSym,OBJPROP_YDISTANCE,YD); ObjectSetInteger(indicatorWindow,"oYZ"+sSym,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetString(indicatorWindow,"oYZ"+sSym,OBJPROP_TEXT,sSym); ObjectSetString(indicatorWindow,"oYZ"+sSym,OBJPROP_FONT,"Arial"); ObjectSetInteger(indicatorWindow,"oYZ"+sSym,OBJPROP_FONTSIZE,7); ObjectSetInteger(indicatorWindow,"oYZ"+sSym,OBJPROP_COLOR,lColorSym); ObjectSetInteger(indicatorWindow,"oYZ"+sSym,OBJPROP_SELECTABLE,true); } if(ObjectFind(indicatorWindow,"oYZ_"+sSym)==-1) { ObjectCreate(indicatorWindow,"oYZ_"+sSym,OBJ_LABEL,indicatorWindow,0,0); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_XDISTANCE,XD+45); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_YDISTANCE,YD); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetString(indicatorWindow,"oYZ_"+sSym,OBJPROP_TEXT,sSym); ObjectSetString(indicatorWindow,"oYZ_"+sSym,OBJPROP_FONT,"Arial"); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_FONTSIZE,7); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_COLOR,lColorCH); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_SELECTABLE,true); } YD=YD+11; lColor=lColorCH; if(sSymb.CH>0) { lColor=lColorChPlus; ObjectSetString(indicatorWindow,"oYZ_"+sSym,OBJPROP_TEXT," "+DoubleToString(sSymb.CH,5)); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_XDISTANCE,XD+45); } if(sSymb.CH<0) { lColor=lColorChMinus; ObjectSetString(indicatorWindow,"oYZ_"+sSym,OBJPROP_TEXT,DoubleToString(sSymb.CH,5)); ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_XDISTANCE,XD+46); } ObjectSetInteger(indicatorWindow,"oYZ_"+sSym,OBJPROP_COLOR,lColor); } // // クラスの終わり // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // クラスが使われるコード // CChmcYZ chmc; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { //--- 指標バッファマッピング chmc.RCHsay("EURUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16); // 今日のCH%を計算する chmc.RCHsay("AUDUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16+12 ); chmc.RCHsay("GBPUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16+12*2 ); chmc.RCHsay("USDCHF",TimeCurrent()-86400*5,TimeCurrent(),5,16+12*3 ); chmc.RCHsay("USDCAD",TimeCurrent()-86400*5,TimeCurrent(),5,16+12*4 ); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { chmc.RCHsay("EURUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16); // 今日のCH%を計算する chmc.RCHsay("AUDUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16+12 ); chmc.RCHsay("GBPUSD",TimeCurrent()-86400*5,TimeCurrent(),5,16+12*2 ); chmc.RCHsay("USDCHF",TimeCurrent()-86400*5,TimeCurrent(),5,16+12*3 ); chmc.RCHsay("USDCAD",TimeCurrent()-86400*5,TimeCurrent(),5,16+12*4 ); return(rates_total); } void OnDeinit() { int i=ObjectsTotal(0); // オブジェクトを削除する while( i > 0 ) { if(StringSubstr(ObjectName(0,i ),0,3)=="oYZ") { ObjectDelete(0,ObjectName(0,i )); } i--; } }
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/11347
![YURAZ_CLOSEPRC_V3_1](https://c.mql5.com/i/code/expert.png)
ワンクリックでのすべてのポジションの決済、または預金の割合として定められた利益を得た後のすべてのポジションの決済
![MaByMaSignal](https://c.mql5.com/i/code/indicator.png)
2つの連続した平均値から得られた2本の移動平均線の交差のアルゴリズムを使用したセマフォシグナル指標