コーディングの方法は? - ページ 18 1...111213141516171819202122232425...347 新しいコメント 削除済み 2006.12.12 12:29 #171 Michelです。 コードを見るために時間を割いていただき、ありがとうございます。 時々、必要なのはもう一組の目なのです。 あなたの言う通り、エラーは0による除算で、バーが欠けているものでした。 今、すべて解決しました。 BW trevman 2006.12.12 15:38 #172 コードの説明 - Ind-Fractals-1 このインディケータ(https://c.mql5.com/forextsd/forum/165/ind-fractals-1.mq4)でフラクタルがどのように決定されるのか、どなたか説明してください。通常のフラクタルと同様に、ターニングポイントと実際のフラクタルが描かれる間に遅延があることに気づきましたが、その遅延がどのくらいなのか知りたいです。15分のフラクタルはポイントが確立されてから40-50 1分バーで描かれると思います。いくつかの15分のフラクタルが1時間のフラクタルになるとフラクタルが(その位置ではなく)色変わりしていることにも気づきました。 adamk203 2006.12.20 04:45 #173 をどのようにコーディングするのですか? こんにちは、皆さん。 私はメタトレーダー4の初心者です。メタトレーダー4でのコーディングについてあまり知りません。 私はメタトレーダーが以下の場合にアラートを出すようにしたいです。 1.30期間の単純移動平均が 60期間の単純移動平均を上回ったとき。 2.30期間の単純移動平均が60期間の単純移動平均を下回る。 どなたか、ここにコードを投稿するのを手伝っていただけませんか? どうもありがとうございました increase 2006.12.20 05:04 #174 adamk203: こんにちは、皆さん。私はメタトレーダー4の初心者です。メタトレーダー4のコーディングについてはあまり知識がありません。 私はメタトレーダーが以下の場合にアラートを出すようにしたい。 1.30期間の単純移動平均が60期間の単純移動平均を上回ったとき。 2.30期間の単純移動平均が60期間の単純移動平均を下回る。 どなたか、ここにコードを投稿するのを手伝っていただけませんか? どうもありがとう MAを入力し、単純に0を選択すると、線と矢印が表示されます。 ファイル: trendtest_window.mq4 6 kb adamk203 2006.12.20 06:29 #175 thx a lot~~~ parlenk 2006.12.21 07:19 #176 increase: なぜこれを使用しないのですか?あなたのMAを入れて、単純なために0を選択し、あなたのラインと矢印を提供します。 こんにちは、私はクロスオーバーの後に2クリーンキャンドルが終了したときにシグナルが出るようにしたいと思います。 ファイル: gbp_4h.gif 19 kb 削除済み 2006.12.21 23:05 #177 pls help 私のコードを修正する まず第一に、私はこのコードが非常に便利であり、多くの人々がそれを愛すると信じています。だから、私がそれを改善するのを助けてください。 実際、このコードはすでに素晴らしく機能しています。しかし、私は、シンボルが表示されていない単純なアラートポップアップにうんざりしています。そこで、%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%の部分を変更したり追加したりして試してみました。 なぜか、印刷、コメント...何でも、何も起こりません。 そして、奇妙なことに、"----alert-----"の部分を見てください、私はUPBREAK警告を他のものに変えました、しかし、それはまだ "UP BREAK "を表示しています。----きっと、コードを書き換えるたびに、コンパイルして、チャートから削除して、またロードしているのでしょう。 何か思い当たることはありますか? #property indicator_chart_window #import "usr32.dll" // %%%%%%%%%% int MessageBoxA(int hWnd,string lpText,string lpCaption,int uType); //%%%%%%%%%% #import //%%%%%%%%%% int PrevAlertTime = 0; int init() { return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { int i=ObjectsTotal(); int redtotal=0,j,typ1; double price1,price2,up,down; color col; string name1,name2,nameup,namedown,warn1,sym=Symbol(); warn1=sym + "Break Up"; //%%%%%%%%%% Print(sym); //%%%%%%%%%%% //----make sure exactly 2 red lines on chart--------------------- for (j=0; j<i; j++) if(ObjectGet(ObjectName(j),OBJPROP_COLOR)==255 && ObjectType(ObjectName(j))==OBJ_TREND) { redtotal++; if (redtotal==1) name1=ObjectName(j); if (redtotal==2) name2=ObjectName(j); } if (redtotal==2) { if(ObjectFind("remind")==0) ObjectDelete("remind"); } else { ObjectCreate("remind",OBJ_LABEL,0,0,0); ObjectSet("remind", OBJPROP_XDISTANCE,0); ObjectSet("remind", OBJPROP_YDISTANCE,20); ObjectSetText("remind", "Keep exactly 2 red lines on chart" ,16,"Times New Roman",Blue); return(0); // question here: what should I use, 0 or -1 ? } //--------decide which line is up / down --------------------- price1=NormalizeDouble(ObjectGetValueByShift(name1,1), MarketInfo(Symbol(),MODE_DIGITS)); price2=NormalizeDouble(ObjectGetValueByShift(name2,1), MarketInfo(Symbol(),MODE_DIGITS)); if (price2>=price1) { nameup=name2; namedown=name1; up=price2; down=price1; } else { nameup=name1; namedown=name2; up=price1; down=price2; } //-------- alert ---------------------------------------------- if (TimeCurrent() - PrevAlertTime > Period()*60/3) { if (Close[1]up) { MessageBoxA(NULL,"tupole","11111",0); // %%%%%%%%%% Print(Symbol()); // %%%%%%%%%% PrevAlertTime = TimeCurrent(); } if (Close[1]>=down && Close[0]<down) { Alert("DOWN BREAK",Symbol()); PrevAlertTime = TimeCurrent(); } } return(0); } pls help correct my How to code? object name passed to 削除済み 2006.12.24 02:50 #178 何が問題なのかわかりました。 通常、私はコードを作成または編集します。「メタエディタ---ファイル---新規/開く...」とします。 しかし、今わかったのですが、チャートに貼り付けた後、このコードにいくつかの変更を加えても、最終的に、それ以上の変更は、もうチャートには影響しないのです(確かに私はコンパイルしました!)----- しかし、"Metaeditor--navigator--files--my code..." には影響します!!! これは奇妙なことで、これらは同じコードのはずです。 おかしいな、同じコードのはずなのに。 CEO 2007.01.14 23:11 #179 トレールコードのヘルプ void TrailIt( int byPips ) // based on trailing stop code from MT site... thanks MT! { if (byPips >=5) { for (int i = 0; i < OrdersTotal(); i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol... { if (OrderType() == OP_BUY) { //if (Bid > (OrderValue(cnt,VAL_OPENPRICE) + TrailingStop * Point)) { // OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet); // break; //} if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) { if (OrderStopLoss() < Bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT)) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red); } } } else if (OrderType() == OP_SELL) { if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) { if ((OrderStopLoss() > Ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red); } } } } } } } // proc TrailIt() これがそのコードです。添付ファイルにあるように、ある注文でストップを修正するのですが、間違った方向にも修正されてしまい、修正することができません。私は本当に解決策を見つけるために助けを感謝します! ファイル: ordermodify.txt 40 kb How to code? 出口戦略ステップ・ストップとトレーリング・ストップの比較 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Nicholishen 2007.01.15 02:51 #180 これを試してみてください。おそらく、異なるシンボルで注文を変更しようとしているように見えます。 その場合、BidとAskはEAが貼り付けられているChartウィンドウのシンボルからしかマーケットデータを取得できません。 MarketData(symbol, MODE_BID)を使用するのが適切なデータを取得する方法です。 void TrailIt( int byPips ) // based on trailing stop code from MT site... thanks MT! { if (byPips >=5) { for (int i = 0; i < OrdersTotal(); i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); double bid=MarketInfo(OrderSymbol(),MODE_BID); double ask=MarketInfo(OrderSymbol(),MODE_ASK); if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol... { if (OrderType() == OP_BUY) { if (bid - OrderOpenPrice() >= byPips * MarketInfo(OrderSymbol(), MODE_POINT)) { if (OrderStopLoss() < bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT)|| (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red); } } } else if (OrderType() == OP_SELL) { if (OrderOpenPrice() - ask >= byPips * MarketInfo(OrderSymbol(), MODE_POINT)) { if ((OrderStopLoss() > ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(),ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red); } } } } } } return; } How to code? 出口戦略ステップ・ストップとトレーリング・ストップの比較 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 1...111213141516171819202122232425...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Michelです。
コードを見るために時間を割いていただき、ありがとうございます。 時々、必要なのはもう一組の目なのです。 あなたの言う通り、エラーは0による除算で、バーが欠けているものでした。 今、すべて解決しました。
BW
コードの説明 - Ind-Fractals-1
このインディケータ(https://c.mql5.com/forextsd/forum/165/ind-fractals-1.mq4)でフラクタルがどのように決定されるのか、どなたか説明してください。通常のフラクタルと同様に、ターニングポイントと実際のフラクタルが描かれる間に遅延があることに気づきましたが、その遅延がどのくらいなのか知りたいです。15分のフラクタルはポイントが確立されてから40-50 1分バーで描かれると思います。いくつかの15分のフラクタルが1時間のフラクタルになるとフラクタルが(その位置ではなく)色変わりしていることにも気づきました。
をどのようにコーディングするのですか?
こんにちは、皆さん。
私はメタトレーダー4の初心者です。メタトレーダー4でのコーディングについてあまり知りません。
私はメタトレーダーが以下の場合にアラートを出すようにしたいです。
1.30期間の単純移動平均が 60期間の単純移動平均を上回ったとき。
2.30期間の単純移動平均が60期間の単純移動平均を下回る。
どなたか、ここにコードを投稿するのを手伝っていただけませんか?
どうもありがとうございました
こんにちは、皆さん。
私はメタトレーダー4の初心者です。メタトレーダー4のコーディングについてはあまり知識がありません。
私はメタトレーダーが以下の場合にアラートを出すようにしたい。
1.30期間の単純移動平均が60期間の単純移動平均を上回ったとき。
2.30期間の単純移動平均が60期間の単純移動平均を下回る。
どなたか、ここにコードを投稿するのを手伝っていただけませんか?
どうもありがとうMAを入力し、単純に0を選択すると、線と矢印が表示されます。
thx a lot~~~
なぜこれを使用しないのですか?あなたのMAを入れて、単純なために0を選択し、あなたのラインと矢印を提供します。
こんにちは、私はクロスオーバーの後に2クリーンキャンドルが終了したときにシグナルが出るようにしたいと思います。
pls help 私のコードを修正する
まず第一に、私はこのコードが非常に便利であり、多くの人々がそれを愛すると信じています。だから、私がそれを改善するのを助けてください。
実際、このコードはすでに素晴らしく機能しています。しかし、私は、シンボルが表示されていない単純なアラートポップアップにうんざりしています。そこで、%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%の部分を変更したり追加したりして試してみました。
なぜか、印刷、コメント...何でも、何も起こりません。
そして、奇妙なことに、"----alert-----"の部分を見てください、私はUPBREAK警告を他のものに変えました、しかし、それはまだ "UP BREAK "を表示しています。----きっと、コードを書き換えるたびに、コンパイルして、チャートから削除して、またロードしているのでしょう。
何か思い当たることはありますか?
#property indicator_chart_window
#import "usr32.dll" // %%%%%%%%%%
int MessageBoxA(int hWnd,string lpText,string lpCaption,int uType); //%%%%%%%%%%
#import //%%%%%%%%%%
int PrevAlertTime = 0;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int i=ObjectsTotal();
int redtotal=0,j,typ1;
double price1,price2,up,down;
color col;
string name1,name2,nameup,namedown,warn1,sym=Symbol();
warn1=sym + "Break Up"; //%%%%%%%%%%
Print(sym); //%%%%%%%%%%%
//----make sure exactly 2 red lines on chart---------------------
for (j=0; j<i; j++)
if(ObjectGet(ObjectName(j),OBJPROP_COLOR)==255 && ObjectType(ObjectName(j))==OBJ_TREND)
{ redtotal++;
if (redtotal==1) name1=ObjectName(j);
if (redtotal==2) name2=ObjectName(j);
}
if (redtotal==2)
{
if(ObjectFind("remind")==0) ObjectDelete("remind");
}
else
{
ObjectCreate("remind",OBJ_LABEL,0,0,0);
ObjectSet("remind", OBJPROP_XDISTANCE,0);
ObjectSet("remind", OBJPROP_YDISTANCE,20);
ObjectSetText("remind", "Keep exactly 2 red lines on chart" ,16,"Times New Roman",Blue);
return(0); // question here: what should I use, 0 or -1 ?
}
//--------decide which line is up / down ---------------------
price1=NormalizeDouble(ObjectGetValueByShift(name1,1),
MarketInfo(Symbol(),MODE_DIGITS));
price2=NormalizeDouble(ObjectGetValueByShift(name2,1),
MarketInfo(Symbol(),MODE_DIGITS));
if (price2>=price1)
{
nameup=name2; namedown=name1;
up=price2; down=price1;
}
else
{ nameup=name1; namedown=name2;
up=price1; down=price2;
}
//-------- alert ----------------------------------------------
if (TimeCurrent() - PrevAlertTime > Period()*60/3)
{
if (Close[1]up)
{ MessageBoxA(NULL,"tupole","11111",0); // %%%%%%%%%%
Print(Symbol()); // %%%%%%%%%%
PrevAlertTime = TimeCurrent();
}
if (Close[1]>=down && Close[0]<down)
{ Alert("DOWN BREAK",Symbol());
PrevAlertTime = TimeCurrent();
}
}
return(0);
}
何が問題なのかわかりました。
通常、私はコードを作成または編集します。「メタエディタ---ファイル---新規/開く...」とします。
しかし、今わかったのですが、チャートに貼り付けた後、このコードにいくつかの変更を加えても、最終的に、それ以上の変更は、もうチャートには影響しないのです(確かに私はコンパイルしました!)----- しかし、"Metaeditor--navigator--files--my code..." には影響します!!! これは奇妙なことで、これらは同じコードのはずです。 おかしいな、同じコードのはずなのに。
トレールコードのヘルプ
{
if (byPips >=5)
{
for (int i = 0; i < OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...
{
if (OrderType() == OP_BUY) {
//if (Bid > (OrderValue(cnt,VAL_OPENPRICE) + TrailingStop * Point)) {
// OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);
// break;
//}
if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) {
if (OrderStopLoss() < Bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red);
}
}
} else if (OrderType() == OP_SELL) {
if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) {
if ((OrderStopLoss() > Ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT)) ||
(OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red);
}
}
}
}
}
}
} // proc TrailIt()これがそのコードです。添付ファイルにあるように、ある注文でストップを修正するのですが、間違った方向にも修正されてしまい、修正することができません。私は本当に解決策を見つけるために助けを感謝します!
これを試してみてください。おそらく、異なるシンボルで注文を変更しようとしているように見えます。 その場合、BidとAskはEAが貼り付けられているChartウィンドウのシンボルからしかマーケットデータを取得できません。 MarketData(symbol, MODE_BID)を使用するのが適切なデータを取得する方法です。
{
if (byPips >=5)
{
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
double bid=MarketInfo(OrderSymbol(),MODE_BID);
double ask=MarketInfo(OrderSymbol(),MODE_ASK);
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...
{
if (OrderType() == OP_BUY)
{
if (bid - OrderOpenPrice() >= byPips * MarketInfo(OrderSymbol(), MODE_POINT))
{
if (OrderStopLoss() < bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT)|| (OrderStopLoss() == 0))
{
OrderModify(OrderTicket(), OrderOpenPrice(), bid - byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red);
}
}
}
else if (OrderType() == OP_SELL)
{
if (OrderOpenPrice() - ask >= byPips * MarketInfo(OrderSymbol(), MODE_POINT))
{
if ((OrderStopLoss() > ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT)) || (OrderStopLoss() == 0))
{
OrderModify(OrderTicket(), OrderOpenPrice(),ask + byPips * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red);
}
}
}
}
}
}
return;
}