コーディングの方法は? - ページ 289

 

このEAを完成させる手助けが必要です

私は、次のことを行うEAを(すでに作られたいくつかのコードを使用して)コーディングしようとしています。

  • 特定の時間(この場合は23:00)に、売りと買いの2つの保留中の注文を、SLとTPを付けて開く。
  • 保留中の注文をある時間(例えば10:00)に失効させ、金曜日の23:00にはいかなる取引も行わないようにする。
  • 2つの取引が開始され、一方がSLに達した場合、もう一方のTPは一定量に増加する(OrderModifyでこのようなことは解決できると思う)。
  • 開いたトレードは翌日の 23:00には自動的に閉じます。
  • EAはほぼ完成 しており、以前あった問題も解決し、上記のほとんどを行うことができますが、まだ以下の問題があり、現時点ではこれ以上どうすればいいのかわかりませんので、もし誰かが必要なコードを提供してくれれば非常に助かります。

  • 2つの取引が開かれていて、一方がストップロスに当たったとき、まだ開かれているもう一方の取引の利食い 額を一定量増やす必要があります。
  • 取引は金曜日の23:00にまだ開かれていますが、これは望みません。
  • 23:00にまだ開いている取引は、損失か利益かに関係なく、すべて閉じるべきです。

私はMQLの初心者で、上記の問題の解決策を探し回ってみたのですが、なかなか見つかりません。あまり複雑なコーディングは必要なく、簡単に解決できる問題だと考えています。もし、どなたか上記の問題に対する解決策を提供してくださる方がいらっしゃいましたら、もう一度、大変感謝いたします。

ありがとうございました。

madmax3

 

...

次のようなことを試してみてください。

if((CurrentPriceBuy>UpperPriceTrigger) && TakeAction==1)

{

int ticketBuy = OrderSend(Sym,OP_BUY,Lots,CurrentPriceBuy,0,0,0,Co mm,0,0,CLR_NONE);

if (ticketBuy>-1)

OrderModify(ticketBuy,OrderOpenPrice(),stopLossToUse,takeProfitToUse,0,CLR_NONE);

}

stopLossToUseとtakeLossToUseを希望する値で置き換えるだけです。

kasio:
友人です。

私はMQL4プログラミングの初心者で、ECNブローカーとのORDERSENDにSLとTPを付ける手助けを必要としています。

当初、SLとTPがなぜ私の注文をエラーにするのか理解できませんでしたが、ORDERSEND内のStopLossとTakeProfitフィールドを「0」に設定しなければ、ECN/STPブローカーはその注文を実行しないと指摘されました。

そこで質問ですが、成行で注文を実行し、すぐに(あるいは1~2秒以内に)そのチケットにSL/TPを付けるにはどうしたらよいでしょうか?

以下は、私の質問に関連するコードの一部です。

if((CurrentPriceBuy>UpperPriceTrigger) && TakeAction==1)

{

注文送信(Sym, OP_BUY, Lots, CurrentPriceBuy, 0,0,0,Comm, 0,0,CLR_NONE);

TakeAction=0;

}

誰かOrderSendコマンドの直後にコードを挿入して、その特定のチケットに任意で25pipsのTP/SLを付けられるようにするのを手伝ってくれませんか?

どんな助けでも大いに感謝します。よろしくお願いします。

よろしくお願いします。

カシオ
 

help!

このインジケータをリペイントしないようにするのを誰か助けてくれませんか?

ファイル:
pi_bg_v2.mq4  3 kb
 

...

これはデコンパイルされたコードですが、とにかくこのスレッドを見てください :https://www.mql5.com/en/forum/179650

それはもう一つの太陽風の名前を変えたものです、だから...

phoenix:
誰かこのインジケータをリペイントしないようにするのを手伝ってくれませんか?
 

私が投稿したものをコーディングする方法について何かアイデアはありますか?もし私がせっかちか何かであれば申し訳ありませんが、ただそれが読まれているかどうかを知りたいだけなのです。

ありがとうございます。

madmax3

 

...

あなたのEAでstart()プロシージャの最初にこのようなものを追加してください。
if (TimeDayOfWeek(TimeCurrent())==5 && TimeCurrent()>=StrToTime("22:59")) { CloseAll(); return(0); } [/PHP]

これをコードに追加してください。

[PHP]void CloseAll()

{

for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber() !=MagicNumber) continue, if (OrderMagicNumber()!=MagicNumber) continue;

//

//

//

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

{

for(int c=0; c<3; c++)

{

RefreshRates();

if (OrderType()==OP_BUY)

{ double cp = Bid;}

else { cp = Ask;}

OrderClose(OrderTicket(),OrderLots(),cp,0,Yellow);

int err=GetLastError();

if(err==4 || err==136 || err==137 || err==138 || err==146)

{

Sleep(5000); continue;

}

break;

}

}

break;

}

}

break

これで、ポイント2と3(金曜日にオープンした注文)が解決します。

最初の点はコーディングがやや複雑なので、おそらくそのルールを再定義する必要があります。

madmax3:
私が投稿したものをコード化する方法について何かアイデアはありますか?私は焦っているか何かであれば私の謝罪は、それが読まれているかどうかを知りたいだけです。

ありがとうございます。

madmax3
 

助けてくださいエラー番号 = 4103。 pos = 10。ファイルを開くことができません

こんにちは。

私はここで新しいですし、MTのプログラミングも初めてです。どなたか教えてください。

私は、「エラーが発生しました。エラー番号 = 4103。pos = 10(ファイルを開くことができません)メッセージ" と表示されました。

ファイルはgifで正しく保存されているのですが、上記のメッセージが表示されます。どこが問題なのでしょうか?

コードは

void Screenshot(int ticket, int cmd, datetime orderOpenTime, double orderOpenPrice)

{

RefreshRates()。

if (cmd==OP_BUY) Comment (DateTimeInfo(),"\n", "OrderOpen Time:",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)"," Buy:",DoubleToStr(orderOpenPrice,桁数)) ;

if (cmd==OP_SELL) Comment (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Sell: ",DoubleToStr(orderOpenPrice,Digits)) ;

string filename = Symbol()+"_"+"Demo "+"_"+ticket+"_Open.gif";

int handle = FileOpen(filename,FILE_CSV|FILE_READ);

if(ハンドル<1)

{

if (GlobalVariableGet("_MonitorScreen_ScreenShot") != 0 )

{

if(!WindowScreenShot(filename,900,600))Print("WindowScreenShotエラー。"+GetLastError()");

}

}

else FileClose(ハンドル);

}

どんな助けでも感謝します。ありがとうございました。

 

...

それはOKです

ファイルはexpertsfilesサブフォルダ内になければならず、私はチケット番号0を例として使用したので、完全なファイル名は私の例では "EURUSD_Demo_0_Open.gif" で、問題なく開けました(FILE_BINと 同様にFILE_CSVを使用してもOKです)。つまり、正しいフォルダに正しい名前で保存されていれば、あなたのコードは問題なく動作します。

Akkinmore:
こんにちは。

私はここに来たばかりで、MTプログラミングも初めてです。どなたか教えてください。

私は、"エラーが発生しました。エラー番号 = 4103。pos = 10(ファイルを開くことができません)メッセージ" が表示されました。

ファイルはgifで正しく保存されているのですが、上記のメッセージが表示されます。どこが問題なのでしょうか?

コードは

void Screenshot(int ticket, int cmd, datetime orderOpenTime, double orderOpenPrice)

{

RefreshRates()。

if (cmd==OP_BUY) Comment (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)"," Buy:",DoubleToStr(orderOpenPrice,桁数)) ;

if (cmd==OP_SELL) Comment (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Sell: ",DoubleToStr(orderOpenPrice,Digits)) ;

string filename = Symbol()+"_"+"Demo "+"_"+ticket+"_Open.gif";

int handle = FileOpen(filename,FILE_CSV|FILE_READ);

if(ハンドル<1)

{

if (GlobalVariableGet("_MonitorScreen_ScreenShot") != 0 )

{

if(!WindowScreenShot(filename,900,600))Print("WindowScreenShotエラー。"+GetLastError()");

}

}

else FileClose(ハンドル);

}

どんなことでもご相談ください。ありがとうございました。
 
mladen:
It works OK ファイルは expertsfiles サブフォルダになければならず、チケット番号 0 を例にしているので、フルファイル名は私の例では "EURUSD_Demo_0_Open.gif" で問題なく開きました(FILE_BIN と同様、FILE_CSV を使用しても問題なく開きます)。つまり、正しいフォルダに正しい名前で保存されていれば、あなたのコードは問題なく動作します。

ありがとうございます。はい、ファイルは正しいフォルダに正しい名前で保存されています。FILE_CSVの代わりにFILE_BINを 使用して、エラーメッセージが再び表示されるかどうかを確認することができます。

 

...

コンピュータにロシア語の単語をインジケータで正しく表示させるには?...ありがとうございます...