コーディングの方法は? - ページ 221 1...214215216217218219220221222223224225226227228...347 新しいコメント 削除済み 2009.12.02 23:42 #2201 行を移動させたいのでよろしくお願いします。 -------------------------------------------------------------------------------- このインジケータは設計通りに動作します。しかし、私はそれを拡張したい。私はこれをしたい。 以下のインジケータをコピーして、次の2つの修正を行ってください。 修正#1。 ストップロス設定をしていない場合は、アラームが作動しないようにラインを500ピップス先に移動させる。 修正その2。 takeprofit1というラインを作り(これはコードにはありません)、そのラインを私のストップロスの位置まで移動してください。また、異なるサウンドアラートを使用します。 このインジケータは損切りと利益確定をチェックし、損切りと利益確定が設定されていない場合は、それぞれの価格に合わせてラインを500,502ピップス先に移動させることになります。 そうすれば、マーケットが私の利益や損切りをヒットしたときに、メタトレーダーを見ていないときやウィンドウを最小化しているときに、音で知らせてくれます。 この度はありがとうございました。 //+------------------------------------------------------------------+ //|HLine Alert.mq4||HLine Alert.mq4||HLine Alert.mq4 //+------------------------------------------------------------------+ #property copyright "" #property indicator_chart_window(インジケーターチャートウィンドウ extern string LineName="Stoploss1"。 extern color LineColor=Red; extern int LineStyle=STYLE_SOLID; extern int AlertPipRange=1; extern string AlertWav="Alert2.wav"; extern string AlertWav="Alert2.wav"; //+------------------------------------------------------------------+ //| カスタムインジケータ 初期化関数 //+------------------------------------------------------------------+ int init() { //---- インジケータ //---- return(0); } //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| カスタムインジケーターイテレーション関数 //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); ObjectCreate(LineName, OBJ_HLINE, 0, 0, Bid); ObjectSet(LineName, OBJPROP_STYLE, LineStyle); ObjectSet(LineName, OBJPROP_STYLE, LineStyle); ObjectSet(LineName, OBJPROP_WIDTH, 2); ObjectSet(LineName, OBJPROP_WIDTH, 2); ObjectSet(LineName, OBJPROP_COLOR, LineColor); ObjectSet(LineName, OBJPROP_COLOR, LineColor); double val = ObjectGet( LineName, OBJPROP_PRICE1); if (Bid-AlertPipRange*Point = val) PlaySound(AlertWav); //---- //---- return(0); } //+-------------------------------------------------------------- How to code? Alarm Custom Indicator For price alart in fast vacherh 2009.12.03 20:22 #2202 increase: 以下は、私が作成したアラート付きのMTFバージョンです。 こんにちは、増田です。 あなたのインジケータ(アラート付き)をダウンロードし、修正したのですが、少しエラーがあります。 一度ポップアップ矢印ダウンラベルを表示し、その逆... そして、どのようにアラートをEメールに送信するように設定するのでしょうか? すべてのTFの電子メール。 事前にuよりも ファイル: mtf_afstar.mq4 4 kb afstar.mq4 6 kb 削除済み 2009.12.04 01:02 #2203 私は助けを必要としてください 私が発見したスキャルピング戦略のロボットを開発したいのですが、コードの書き方でどなたか助けていただけませんか? t4fast 2009.12.06 12:00 #2204 皆さん。 ここに添付された画像の ように、移動平均の交差と終了時にアラートを出すための簡単なコードがあります。 私は、if文に何か問題があると思います、確認してください。 事前にありがとうございます。 //+------------------------------------------------------------------+ #property copyright "Non" #property link "non" #property indicator_chart_window extern int Time_Frame = PERIOD_M5; extern int MA_Period = 20; extern int MA_Method = MODE_SMA; extern int MA_applied_to = PRICE_CLOSE; extern bool Enabled = true; extern int WhatCorner=2; int PrevAlertTime=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete("Alart_Condition"); ObjectDelete("Alart_Setup"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int BarsCount=IndicatorCounted(); if (Enabled == false) { string Alart_Condition = "Alart Disabled"; ObjectCreate("Alart_Condition", OBJ_LABEL, 0, 0, 0); ObjectSetText("Alart_Condition", Alart_Condition , 12, "Comic Sans MS", Red); ObjectSet("Alart_Condition", OBJPROP_CORNER, WhatCorner); ObjectSet("Alart_Condition", OBJPROP_XDISTANCE, 1); ObjectSet("Alart_Condition", OBJPROP_YDISTANCE, 1); return (0); } // if (!Enabled) return (0); if (Enabled == true) { string Alart_Setup = (GetMethodText1(MA_Method)+ (DoubleToStr(MA_Period,0))+")"+ GetMethodText(MA_applied_to)) ; ObjectCreate("Alart_Setup", OBJ_LABEL, 0, 0, 0); ObjectSetText("Alart_Setup", Alart_Setup , 12, "Comic Sans MS", Red); ObjectSet("Alart_Setup", OBJPROP_CORNER, WhatCorner); ObjectSet("Alart_Setup", OBJPROP_XDISTANCE, 1); ObjectSet("Alart_Setup", OBJPROP_YDISTANCE, 1); } // if close of i < iMA && iMA < close of i-1 && last time alart .. then sell for (int i=Bars;i>=1;i--) { double m = iMA(NULL,Time_Frame,MA_Period,0,MA_Method,MA_applied_to,i); if ((CurTime() - PrevAlertTime > 20) && Close < m && m < Close) { Alert ("Sell " + Symbol()); PlaySound ("alert.wav"); PrevAlertTime=CurTime(); return(-1); } // if close of i-1 < iMA && iMA < close of i && last time alart .. then buy if ( (CurTime() - PrevAlertTime > 20) && Close < m && m < Close ) { Alert ("Buy "+ Symbol()); PlaySound ("alert.wav"); PrevAlertTime=CurTime(); return(-1); } } //---- //---- return(0); } string GetMethodText1(int MA_Method) { switch(MA_Method) { case 0 : return("SMA("); break; case 1 : return("EMA("); break; case 2 : return("SMMA("); break; case 3 : return("LWMA("); break; } } string GetMethodText(int MA_applied_to) { switch(MA_applied_to) {case 0: return("C"); break; // Close case 1: return("O"); break; // Open case 2: return("H"); break; // High case 3: return("L"); break; } // Low } //+------------ ファイル: q.gif 10 kb How to code? Please fix this indicator MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Speedzter 2009.12.07 05:25 #2205 スクリプトに関するヘルプ こんにちは。 このスクリプトの何が問題なのか、どなたか教えていただけませんか? 4109 ERR_TRADE_NOT_ALLOWED... メッセージがMT4で "Invalid price 1.48770000 forOrderSend function" ですが、なぜかわかりません......。だから、ここで私を助けてください... int start() { double High1; double Low1; double TP = 50; double SL = 50; int Lots = (((AccountBalance()/15)/50)/10); //---- { High1 = iHigh(NULL, PERIOD_D1, 0); Low1 = iLow(NULL, PERIOD_D1, 0); double Buy = High1*Point; double Sell= Low1*Point; Print(Buy); Print(Sell); } //---- { OrderSend(Symbol(),OP_BUYSTOP,Lots,Buy,NULL,Ask-SL*Point,Ask+TP*Point); OrderSend(Symbol(),OP_SELLSTOP,Lots,Sell,3,Bid+SL*Point,Bid-TP*Point); Alert (GetLastError()); } //---- return(0); } How to code? My script does not Need Help with Error Speedzter 2009.12.07 09:39 #2206 ヘルプ 取引不可の問題が解決されました。 しかし、"Invalid Stop"のエラーが出続けています...どなたか教えてください...?何が問題なのか本当に理解できません... ありがとうございました。 int start() { double High1; double Low1; int TP = 50; int SL = 50; int Lots = (((AccountBalance()/15)/50)/10); //---- { High1 = iHigh(NULL, PERIOD_D1, 0); Low1 = iLow(NULL, PERIOD_D1, 0); Print(High1); Print(Low1); } //---- { OrderSend(Symbol(),OP_BUYSTOP,Lots,High1,NULL,Ask-SL*Point,Ask+TP*Point); OrderSend(Symbol(),OP_SELLSTOP,Lots,Low1,NULL,Bid+SL*Point,Bid-TP*Point); Alert (GetLastError()); } //---- return(0); } How to code? My script does not [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 ForExTyro 2009.12.07 14:39 #2207 取引回数を制限したいのですが。 EAにコードを追加 して、1日に行う取引の回数を2回に制限しようとしています。 1日にロングトレードとショートトレードを1回ずつ行うだけです。 これは私がこれまで持っているコードですが、バックテストでそれは動作していません。 あなたは私を助けることができる!? datetime LongTrade=0; datetime ShortTrade=0; if(countOrders(OP_BUY,magic)==0 && LongTrade!=iTime(NULL,PERIOD_D1,0)) { OrderSend(Symbol(),OP_BUY,lots,Ask,0,Bid-stop_loss*Point,lTP,comment + "lTP",magic); LongTrade=iTime(NULL,PERIOD_D1,0); return(0); } -------------------- if(countOrders(OP_SELL,magic)==0 && ShortTrade!=iTime(NULL,PERIOD_D1,0)) { OrderSend(Symbol(),OP_SELL,lots,Bid,0,Ask+stop_loss*Point,sTP,comment + "sTP",magic); ShortTrade=iTime(NULL,PERIOD_D1,0); return(0); } ありがとうございます。 How to code? Error 138 Resolution? My script does not Roger09 2009.12.07 15:38 #2208 ForExTyro: EAにコードを追加して、1日に行う取引の回数を2回に制限しようとしています。 1日にロングトレード1回、ショートトレード1回だけです。 これは私がこれまで持っているコードですが、バックテストでそれは動作しません。 あなたは私を助けることができる!? 置換 datetime LongTrade=0; datetime ShortTrade=0; を static datetime LongTrade=0; static datetime ShortTrade=0; 削除済み 2009.12.08 02:09 #2209 このEAとインジケータで助けてください 私は初心者なので、こんにちは。 私はこのインディケータ(ヒストグラム/ 300バーを振り返る)を持っていますが、それははるかにWAYを再描画します。誰もがまだ同じjob.Thisを行うことはありません指標を示唆していることができますあなたが助けることができれば、それは素晴らしいことだ、それはそれです。 チャーリーCをお待ちしております。 histoind.mq4 #プロパティ indicator_chart_window #property indicator_buffers 2 (インジケータバッファ2) #property indicator_color1 レッド #property indicator_color2 ローングリーン 文字列 gs_unused_124 = ""; bool gi_unused_132 = FALSE; extern int RISK = 3; extern int CountBars = 300; double g_ibuf_144[]; double g_ibuf_148[]です。 int init() { IndicatorBuffers(2); SetIndexStyle(0, DRAW_ARROW).SetIndexStyle(0)を設定します。 SetIndexArrow(0, 234); SetIndexStyle(1, DRAW_ARROW).SetIndexArrow(1,234)を設定します。 SetIndexArrow(1, 233); SetIndexBuffer(0, g_ibuf_144).SetIndexStyle(1,DRAW_ARROW)を設定します。 SetIndexBuffer(1, g_ibuf_148); SetIndexBuffer(1, g_ibuf_148); Comment(); return (0); } int start() { int li_12; double ld_52; double ld_60 double ld_68; double ld_76; double ld_84; double ld_92; double ld_100; double lda_108[50000]; SetIndexDrawBegin(0, Bars - CountBars + 11 + 1); SetIndexDrawBegin(1, Bars - CountBars + 11 + 1); int l_ind_counted_8 = IndicatorCounted(); int li_20 = RISK * 2 + 3; double ld_36 = RISK + 67; double ld_44 = 33 - RISK; int l_period_24 = li_20; if (Bars <= 12) return (0); if (l_ind_counted_8 < 12) {。 for (int li_0 = 1; li_0 <= 0; li_0++) g_ibuf_144[CountBars - li_0] = 0.0; for (li_0 = 1; li_0 <= 0; li_0++) g_ibuf_148[CountBars - li_0] = 0.0です。 } for (int li_4 = CountBars - 11 - 1; li_4 >= 0; li_4--) { { { li_12 = li_4; li_12 = li_4; li_12 = li_4 li_12 = li_4; ld_76 = 0.0; ld_84 = 0.0; for (li_12 = li_4; li_12 <= li_4 + 9; li_12++) ld_84 += MathAbs(High[li_12] - Low[li_12])。 ld_76 = ld_84 / 10.0; li_12 = li_4; ld_68 = 0; while (li_12 < li_4 + 9 && ld_68 < 1.0) {。 if (MathAbs(Open[li_12] - (Close[li_12 + 1])) >= 2.0 * ld_76) ld_68 += 1.0; li_12++; } if (ld_68 >= 1.0) ld_92 = li_12; else ld_92 = -1; li_12 = li_4; ld_68 = 0; while (li_12 < li_4 + 6 && ld_68 < 1.0) {。 if (MathAbs(Close[li_12 + 3] - Close[li_12]) >= 4.6 * ld_76) ld_68 += 1.0; li_12++; } if (ld_68 >= 1.0) ld_100 = li_12; else ld_100 = -1; if (ld_92 > -1.0) l_period_24 = 3; else l_period_24 = li_20; if (ld_100 > -1.0) l_period_24 = 4; else l_period_24 = li_20; ld_52 = 100 - MathAbs(iWPR(NULL, 0, l_period_24, li_4)); lda_108[li_4] = ld_52; g_ibuf_144[li_4] = 0; g_ibuf_148[li_4] = 0; g_ibuf_148[li_4] = 0; ld_60 = 0とする。 if (ld_52 < ld_44) {。 for (int li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { { {? if (lda_108[li_4+li_16])>ld_36){(li_4+li_16)}。 ld_60 = High[li_4] + ld_76 / 2.0; g_ibuf_144[li_4] = ld_60; } if (ld_52 > ld_36) {。 for (li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { { {? if (lda_108[li_4+li_16])<ld_44){(li_16+li_36)}。 ld_60 = Low[li_4] - ld_76 / 2.0; g_ibuf_148[li_4] = ld_60; } } return (0); } ファイル: histoind.mq4 3 kb How to code? 電子メール Email 削除済み 2009.12.08 02:14 #2210 を恬る。 申し訳ございません。 チャーリーC 1...214215216217218219220221222223224225226227228...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
行を移動させたいのでよろしくお願いします。
--------------------------------------------------------------------------------
このインジケータは設計通りに動作します。しかし、私はそれを拡張したい。私はこれをしたい。
以下のインジケータをコピーして、次の2つの修正を行ってください。
修正#1。
ストップロス設定をしていない場合は、アラームが作動しないようにラインを500ピップス先に移動させる。
修正その2。
takeprofit1というラインを作り(これはコードにはありません)、そのラインを私のストップロスの位置まで移動してください。また、異なるサウンドアラートを使用します。
このインジケータは損切りと利益確定をチェックし、損切りと利益確定が設定されていない場合は、それぞれの価格に合わせてラインを500,502ピップス先に移動させることになります。
そうすれば、マーケットが私の利益や損切りをヒットしたときに、メタトレーダーを見ていないときやウィンドウを最小化しているときに、音で知らせてくれます。
この度はありがとうございました。
//+------------------------------------------------------------------+
//|HLine Alert.mq4||HLine Alert.mq4||HLine Alert.mq4
//+------------------------------------------------------------------+
#property copyright ""
#property indicator_chart_window(インジケーターチャートウィンドウ
extern string LineName="Stoploss1"。
extern color LineColor=Red;
extern int LineStyle=STYLE_SOLID;
extern int AlertPipRange=1;
extern string AlertWav="Alert2.wav"; extern string AlertWav="Alert2.wav";
//+------------------------------------------------------------------+
//| カスタムインジケータ 初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
//----
return(0);
}
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| カスタムインジケーターイテレーション関数
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
ObjectCreate(LineName, OBJ_HLINE, 0, 0, Bid);
ObjectSet(LineName, OBJPROP_STYLE, LineStyle); ObjectSet(LineName, OBJPROP_STYLE, LineStyle);
ObjectSet(LineName, OBJPROP_WIDTH, 2); ObjectSet(LineName, OBJPROP_WIDTH, 2);
ObjectSet(LineName, OBJPROP_COLOR, LineColor); ObjectSet(LineName, OBJPROP_COLOR, LineColor);
double val = ObjectGet( LineName, OBJPROP_PRICE1);
if (Bid-AlertPipRange*Point = val) PlaySound(AlertWav);
//----
//----
return(0);
}
//+--------------------------------------------------------------
以下は、私が作成したアラート付きのMTFバージョンです。
こんにちは、増田です。
あなたのインジケータ(アラート付き)をダウンロードし、修正したのですが、少しエラーがあります。
一度ポップアップ矢印ダウンラベルを表示し、その逆...
そして、どのようにアラートをEメールに送信するように設定するのでしょうか?
すべてのTFの電子メール。
事前にuよりも
私は助けを必要としてください
私が発見したスキャルピング戦略のロボットを開発したいのですが、コードの書き方でどなたか助けていただけませんか?
皆さん。
ここに添付された画像の ように、移動平均の交差と終了時にアラートを出すための簡単なコードがあります。
私は、if文に何か問題があると思います、確認してください。
事前にありがとうございます。
//+------------------------------------------------------------------+
#property copyright "Non"
#property link "non"
#property indicator_chart_window
extern int Time_Frame = PERIOD_M5;
extern int MA_Period = 20;
extern int MA_Method = MODE_SMA;
extern int MA_applied_to = PRICE_CLOSE;
extern bool Enabled = true;
extern int WhatCorner=2;
int PrevAlertTime=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Alart_Condition");
ObjectDelete("Alart_Setup");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int BarsCount=IndicatorCounted();
if (Enabled == false)
{
string Alart_Condition = "Alart Disabled";
ObjectCreate("Alart_Condition", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Alart_Condition", Alart_Condition , 12, "Comic Sans MS", Red);
ObjectSet("Alart_Condition", OBJPROP_CORNER, WhatCorner);
ObjectSet("Alart_Condition", OBJPROP_XDISTANCE, 1);
ObjectSet("Alart_Condition", OBJPROP_YDISTANCE, 1);
return (0);
}
// if (!Enabled) return (0);
if (Enabled == true)
{
string Alart_Setup = (GetMethodText1(MA_Method)+ (DoubleToStr(MA_Period,0))+")"+ GetMethodText(MA_applied_to)) ;
ObjectCreate("Alart_Setup", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Alart_Setup", Alart_Setup , 12, "Comic Sans MS", Red);
ObjectSet("Alart_Setup", OBJPROP_CORNER, WhatCorner);
ObjectSet("Alart_Setup", OBJPROP_XDISTANCE, 1);
ObjectSet("Alart_Setup", OBJPROP_YDISTANCE, 1);
}
// if close of i < iMA && iMA < close of i-1 && last time alart .. then sell
for (int i=Bars;i>=1;i--)
{
double m = iMA(NULL,Time_Frame,MA_Period,0,MA_Method,MA_applied_to,i);
if ((CurTime() - PrevAlertTime > 20) && Close < m && m < Close)
{
Alert ("Sell " + Symbol());
PlaySound ("alert.wav");
PrevAlertTime=CurTime();
return(-1);
}
// if close of i-1 < iMA && iMA < close of i && last time alart .. then buy
if ( (CurTime() - PrevAlertTime > 20) && Close < m && m < Close )
{
Alert ("Buy "+ Symbol());
PlaySound ("alert.wav");
PrevAlertTime=CurTime();
return(-1);
}
}
//----
//----
return(0);
}
string GetMethodText1(int MA_Method)
{ switch(MA_Method)
{
case 0 : return("SMA("); break;
case 1 : return("EMA("); break;
case 2 : return("SMMA("); break;
case 3 : return("LWMA("); break; }
}
string GetMethodText(int MA_applied_to)
{
switch(MA_applied_to)
{case 0: return("C"); break; // Close
case 1: return("O"); break; // Open
case 2: return("H"); break; // High
case 3: return("L"); break; } // Low
}
//+------------
スクリプトに関するヘルプ
こんにちは。
このスクリプトの何が問題なのか、どなたか教えていただけませんか?
4109 ERR_TRADE_NOT_ALLOWED... メッセージがMT4で "Invalid price 1.48770000 forOrderSend function" ですが、なぜかわかりません......。だから、ここで私を助けてください...
{
double High1;
double Low1;
double TP = 50;
double SL = 50;
int Lots = (((AccountBalance()/15)/50)/10);
//----
{
High1 = iHigh(NULL, PERIOD_D1, 0);
Low1 = iLow(NULL, PERIOD_D1, 0);
double Buy = High1*Point;
double Sell= Low1*Point;
Print(Buy);
Print(Sell);
}
//----
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Buy,NULL,Ask-SL*Point,Ask+TP*Point);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Sell,3,Bid+SL*Point,Bid-TP*Point);
Alert (GetLastError());
}
//----
return(0);
}ヘルプ
取引不可の問題が解決されました。
しかし、"Invalid Stop"のエラーが出続けています...どなたか教えてください...?何が問題なのか本当に理解できません...
ありがとうございました。
{
double High1;
double Low1;
int TP = 50;
int SL = 50;
int Lots = (((AccountBalance()/15)/50)/10);
//----
{
High1 = iHigh(NULL, PERIOD_D1, 0);
Low1 = iLow(NULL, PERIOD_D1, 0);
Print(High1);
Print(Low1);
}
//----
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,High1,NULL,Ask-SL*Point,Ask+TP*Point);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Low1,NULL,Bid+SL*Point,Bid-TP*Point);
Alert (GetLastError());
}
//----
return(0);
}取引回数を制限したいのですが。
EAにコードを追加 して、1日に行う取引の回数を2回に制限しようとしています。 1日にロングトレードとショートトレードを1回ずつ行うだけです。 これは私がこれまで持っているコードですが、バックテストでそれは動作していません。
あなたは私を助けることができる!?
datetime LongTrade=0;
datetime ShortTrade=0;
if(countOrders(OP_BUY,magic)==0 && LongTrade!=iTime(NULL,PERIOD_D1,0))
{
OrderSend(Symbol(),OP_BUY,lots,Ask,0,Bid-stop_loss*Point,lTP,comment + "lTP",magic);
LongTrade=iTime(NULL,PERIOD_D1,0);
return(0);
}
--------------------
if(countOrders(OP_SELL,magic)==0 && ShortTrade!=iTime(NULL,PERIOD_D1,0))
{
OrderSend(Symbol(),OP_SELL,lots,Bid,0,Ask+stop_loss*Point,sTP,comment + "sTP",magic);
ShortTrade=iTime(NULL,PERIOD_D1,0);
return(0);
}
ありがとうございます。
EAにコードを追加して、1日に行う取引の回数を2回に制限しようとしています。 1日にロングトレード1回、ショートトレード1回だけです。 これは私がこれまで持っているコードですが、バックテストでそれは動作しません。 あなたは私を助けることができる!?
置換
datetime LongTrade=0;
datetime ShortTrade=0;
を
static datetime LongTrade=0;
static datetime ShortTrade=0;
このEAとインジケータで助けてください
私は初心者なので、こんにちは。
私はこのインディケータ(ヒストグラム/ 300バーを振り返る)を持っていますが、それははるかにWAYを再描画します。誰もがまだ同じjob.Thisを行うことはありません指標を示唆していることができますあなたが助けることができれば、それは素晴らしいことだ、それはそれです。
チャーリーCをお待ちしております。
histoind.mq4
#プロパティ indicator_chart_window
#property indicator_buffers 2 (インジケータバッファ2)
#property indicator_color1 レッド
#property indicator_color2 ローングリーン
文字列 gs_unused_124 = "";
bool gi_unused_132 = FALSE;
extern int RISK = 3;
extern int CountBars = 300;
double g_ibuf_144[];
double g_ibuf_148[]です。
int init() {
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_ARROW).SetIndexStyle(0)を設定します。
SetIndexArrow(0, 234);
SetIndexStyle(1, DRAW_ARROW).SetIndexArrow(1,234)を設定します。
SetIndexArrow(1, 233);
SetIndexBuffer(0, g_ibuf_144).SetIndexStyle(1,DRAW_ARROW)を設定します。
SetIndexBuffer(1, g_ibuf_148); SetIndexBuffer(1, g_ibuf_148);
Comment();
return (0);
}
int start() {
int li_12;
double ld_52;
double ld_60
double ld_68;
double ld_76;
double ld_84;
double ld_92;
double ld_100;
double lda_108[50000];
SetIndexDrawBegin(0, Bars - CountBars + 11 + 1);
SetIndexDrawBegin(1, Bars - CountBars + 11 + 1);
int l_ind_counted_8 = IndicatorCounted();
int li_20 = RISK * 2 + 3;
double ld_36 = RISK + 67;
double ld_44 = 33 - RISK;
int l_period_24 = li_20;
if (Bars <= 12) return (0);
if (l_ind_counted_8 < 12) {。
for (int li_0 = 1; li_0 <= 0; li_0++) g_ibuf_144[CountBars - li_0] = 0.0;
for (li_0 = 1; li_0 <= 0; li_0++) g_ibuf_148[CountBars - li_0] = 0.0です。
}
for (int li_4 = CountBars - 11 - 1; li_4 >= 0; li_4--) { { { li_12 = li_4; li_12 = li_4; li_12 = li_4
li_12 = li_4;
ld_76 = 0.0;
ld_84 = 0.0;
for (li_12 = li_4; li_12 <= li_4 + 9; li_12++) ld_84 += MathAbs(High[li_12] - Low[li_12])。
ld_76 = ld_84 / 10.0;
li_12 = li_4;
ld_68 = 0;
while (li_12 < li_4 + 9 && ld_68 < 1.0) {。
if (MathAbs(Open[li_12] - (Close[li_12 + 1])) >= 2.0 * ld_76) ld_68 += 1.0;
li_12++;
}
if (ld_68 >= 1.0) ld_92 = li_12;
else ld_92 = -1;
li_12 = li_4;
ld_68 = 0;
while (li_12 < li_4 + 6 && ld_68 < 1.0) {。
if (MathAbs(Close[li_12 + 3] - Close[li_12]) >= 4.6 * ld_76) ld_68 += 1.0;
li_12++;
}
if (ld_68 >= 1.0) ld_100 = li_12;
else ld_100 = -1;
if (ld_92 > -1.0) l_period_24 = 3;
else l_period_24 = li_20;
if (ld_100 > -1.0) l_period_24 = 4;
else l_period_24 = li_20;
ld_52 = 100 - MathAbs(iWPR(NULL, 0, l_period_24, li_4));
lda_108[li_4] = ld_52;
g_ibuf_144[li_4] = 0;
g_ibuf_148[li_4] = 0; g_ibuf_148[li_4] = 0;
ld_60 = 0とする。
if (ld_52 < ld_44) {。
for (int li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { { {?
if (lda_108[li_4+li_16])>ld_36){(li_4+li_16)}。
ld_60 = High[li_4] + ld_76 / 2.0;
g_ibuf_144[li_4] = ld_60;
}
if (ld_52 > ld_36) {。
for (li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { { {?
if (lda_108[li_4+li_16])<ld_44){(li_16+li_36)}。
ld_60 = Low[li_4] - ld_76 / 2.0;
g_ibuf_148[li_4] = ld_60;
}
}
return (0);
}
を恬る。
申し訳ございません。
チャーリーC