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

 

不明なサブウィンドウの番号

こんにちは、コーダー仲間

iCustomの呼び出しに関するこの問題について、どなたか解決策をお持ちではないでしょうか。考えられることはすべて試してみましたが、Expertsタブに同じメッセージが表示されたままです。

ObjectCreate関 数の不明なサブウィンドウ番号-1

CJAより

 

インジケーターのサブウィンドウの呼び出しを削除 する

cja:
こんにちは、コーダー仲間

iCustomコールのこの問題に対する解決策をお持ちの方はいらっしゃいますか。考えられることはすべて試してみましたが、Expertsタブに同じメッセージが表示されたままです。

ObjectCreate関数のサブウィンドウ番号-1が不明です。

CJAより

CJAさん、こんにちは。

私はこの問題を回避するために使用する解決策を持っています。

あなたのEAがiCustomで呼び出しているインジケータは、オブジェクトを描画するためのサブウィンドウを見つけ出そうとしています。

ほとんどの場合、インジケータは何も描画する必要がなく、インジケータの値をEAに提供するだけでよいのです。

私の解決策は、インジケーターのコピーを作成し、サブウィンドウの呼び出しとオブジェクトの描画ルーチンを削除することです。

これにより、サブウィンドウのエラーがなくなり、EAの動作も速くなります。

そして、この新しいインジケータ名をEAのiCustomステートメントで使用します。

もっと良いコードソリューションがあると思いますが、私の場合はこれでうまくいきました。

お役に立てれば幸いです。

ロバート

 

iCustomサブウィンドウのエラー

cosmiclifeform:
こんにちは、CJA。

この問題を回避するために使用する解決策があります。

EAがiCustomで呼び出しているインジケータは、オブジェクトを描画するためのサブウィンドウを探そうとしています。

ほとんどの場合、インジケータは何も描画する必要がなく、インジケータの値をEAに提供するだけでよいのです。

私の解決策は、インジケーターのコピーを作成し、サブウィンドウの呼び出しとオブジェクトの描画ルーチンを削除することです。

これにより、サブウィンドウのエラーがなくなり、EAの動作も速くなります。

そして、この新しいインジケータ名をEAのiCustomステートメントで使用します。

もっと良いコードソリューションがあると思いますが、私の場合はこれでうまくいきました。

これがお役に立てれば幸いです。

ロバート

ロバートさん、ありがとうございます。あなたの提案はうまくいきましたが、ネットで検索してみましたが、うまくいく、あるいは意味のある解決策は見つからず、多くの質問と答えがあるのみでした。もう一度お礼を言わせてください。

CJAより

 

CJA

提案なのですが、(iCustom()で呼び出されたときに)希望するウィンドウ番号を渡すパラメータを 使用してはどうでしょうか?例えば、if (ParameterWindowID>=0) then it is from iCustom else do some default code.

そうすれば、他のコードから呼び出されたときでも、強制的にオブジェクトを描画させることができ、正しい場所にオブジェクトを描画することができます。

 

コーディングのヘルプ

こんにちは、皆さん。

それは電子メールアラートレポートでBOLD textFONTypeを使用することが可能であるかどうか、誰もが私に教えてください?はい、どのように私はこれをコーディングすることができますか?

ヘルプのために多くのことをありがとうございます。

 
codersguru:
CSVファイルに保存する方法ということでしょうか?

これを確認する。

ツール - .csv リーダー

こんにちは、Guru。

このDLLをダウンロードできる場所は、あなたのウェブサイトのどこかにありますか?これは優れたツールだと思いますし、私よりうまく書けると思うので、悩むことはないでしょう。事前にありがとうございます。

登録は必要ですか?ダウンロードのところにあるのですが、ダウンロードの仕方がよくわかりませんでした。

 

クイックEA改造

こんにちは。

以下のコードを変更しようとしたのですが、EAがMT4をクラッシュさせ続けてしまうので、助けが必要です。

現在のバー(つまり注文が実行されたバー)が閉じたときに注文が終了するようにしたいのです。基本的に1つのバーを取引します。

これはオリジナルのコードで、シグナルからシグナルへトレードします。

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

//| Signal Begin(Exit Buy) |

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

if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;

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

//| Signal End(Exit Buy) |

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

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

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

//| Signal Begin(Exit Sell) |

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

if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;

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

//| Signal End(Exit Sell) |

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

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

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

//| Signal Begin(Entry) |

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

//if (timeprev!=Time[0]){

// timeprev = Time[0];

if (signalup!=EMPTY_VALUE&&signalup!=0)

{

Order = SIGNAL_BUY;

}

if (signaldown!=EMPTY_VALUE&&signaldown!=0){

Order = SIGNAL_SELL;

}

// }

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

//| Signal End |

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

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

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

どなたか助けていただけませんか?

 

また、このようなコードも見つかりました。

if(data!=iTime(Symbol(),0,0))

{

if(signalup!=EMPTY_VALUE&&signalup!=0)

{

if(openpos()>0)

{

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

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn)

{

if(OrderClose(OrderTicket(),lots,Ask,slip))

Print("short was closed");

}

}

}

Print("try open long");

Print(Symbol());

nt=OrderSend(Symbol(),OP_BUY,lots,Ask,slip,0,0,"ab",mn,0,Green);

if(nt>0)

Print("long order was opened");

}

if(signaldown!=EMPTY_VALUE&&signaldown!=0)

{

if(openpos()>0)

{

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

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn)

{

if(OrderClose(OrderTicket(),lots,Bid,slip))

Print("long was closed");

}

}

}

Print("try open short");

Print(Symbol());

nt=OrderSend(Symbol(),OP_SELL,lots,Bid,slip,0,0,"ab",mn,0,Red);

if(nt>0)

Print("short was opened");

}

data=iTime(Symbol(),0,0);

}

//----

//----

return(0);

}

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

int openpos()

{

int j=0;

int i,n;

n=OrdersTotal();

for(i=0;i<n;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==mn&&(OrderType()==OP_SELL||OrderType()==OP_BUY))

j++;

}

return(j);

どなたか専門家の方、どちらがより良く書かれているか教えていただけませんか?

 

ペアの全注文のブレークイーブン (マジック)

皆さん、こんにちは。

あるペアのすべての注文(買い・売り)をマジックで集め、それらがブレークイーブンに達した場合、すべての注文をクローズしたいのです。

何かご指導をお願いします。

extern bool PairBreakeven=true;// 同じペア/マジックのすべての注文をペアごとにブレークイーブンする。

extern double Pairbreakevengain=6;// 均等割れを可能にするために必要な pips の利益。

extern double Pairbreakeven=3;// ブレークイーブン、注文クローズ、3ピップの利益/スリッページ

double Pairmovebreakeven;

if(PairBreakeven==true){。

if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven).Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);

CloseBuyOrders(Magic)。

CloseSellOrders(Magic);

}

void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){。

RefreshRates();

if(OrdersTotal()>0){。

for(int i=OrdersTotal();i>=0;i++){ オーダーセレクト(i,S,S,S,S,S)。

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){。

を返します。

}

}

}

}

int CloseBuyOrders(int Magic){ //op_sell も似たようなものです。

int total=OrdersTotal();

for(int cnt=total-1;cnt>=0;cnt--){。

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ (オーダーマジック番号()==マジック && オーダーシンボル()==シンボル()){)

if(OrderType()==OP_BUY){ (オーダータイプ()==OP_BUY){)

OrderClose(OrderTicket(),OrderLots(),Bid,3*mt)。

}

}

}

return(0);

 

3次元以上のArraySort。

どなたか専門家の方に教えていただけませんか?

私は1次元または2次元の配列のために成功したarraysortを使用しようとしました。しかし、3次元で行き詰まりました。私の知る限り、arraysortは ソートのために最初の列のみを使用 します。どなたか、3次元以上の配列ソートを解決する方法をアドバイスしていただけませんか?

bool Restart = true;

double arraystore[20][20][20];

double ArrayActual[20] = {1.23,3.65,0.02,5.44,0.92,0.11,1.21,999.0,555.5,0.0001,44.221,1.01,0.002};

void init()

{

if (Restart == true)

{

Go();

Restart = false;

}

}

void start()

{

}

void Go()

{

for (int a = 1; a<=3; a++)

{

for (int b = 1; b<=6; b++)

{

int c = b+ (a-1)*6;

arraystore[a][0] = ArrayActual[c];

arraystore[a][1] = a;

arraystore[a][2] = b +a;

Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]);

}

}

ArraySort(arraystore,WHOLE_ARRAY,1,MODE_DESCEND);

for ( a = 1; a<=3; a++)

{

for ( b = 1; b<=6; b++)

{

Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]);

}

}

}