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

 
alvintran:
いやいや、SL/TPの問題ではありません、その問題は知っています、私はそれが何もしないと言いました、それはデモ口座(インスタント実行または私は知らない何か)では正常に動作しますが、ライブ口座では動作しません、何の問題もありません、ただ何もしない。

このEAは私が書いたもので、購入でもなく、体験版でもなく、限定でもない。

お願いです!助けてください

ここに引用を投稿してください、そして、私は誰かがあなたを地獄に陥れると確信しています。

 
alvintran:
いやいや、SL/TPの問題ではありません、その問題は知っています、私はそれが何もしないと言いました、それはデモ口座(インスタント実行または私は知らない何か)それは正常に動作しますが、ライブ口座では動作しません、何の問題もありません、ただ何もしない。

このEAは私が書いたもので、購入でもなく、試用版でもなく、どんな制限もありません。

お願いです!助けてください

しかし、このEAを投稿してください、私はあなたを助けることができますが、私はコードが必要です。

乾杯。

Grzesiek

 

2次元の配列をファイルに取り込み、次のEAで別の配列に戻す方法

こんにちは。

2次元の配列(例えば double array[x][y] where x=100, y=30)をファイルに取り込んで、そのファイルから次のEAで配列に戻すにはどうしたらいいか、誰か説明してくれませんか?1次元の方がずっと簡単です!

こんな記事がありました。3次元グラフ - マーケット分析のプロフェッショナルツール - MQL4 Articles でも、このファイルからどうやって私のEAに数字を読み込むのかわかりません...。

さらに、私は数値の大きな精度を保存したいので、FileWriteDouble()関数(バイナリ)を使おうかと思案中です。

誰か助けてください。

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

 
g.pociejewski:
OK、でもこのEAを投稿してください、私はあなたを助けることができますが、私はコードが必要です。

乾杯

Grzesiek

皆さん、ありがとうございました。

私のEAには何の問題もありません。しかし、私のEAは何の問題もなく、ただ何もしないだけです。

そこで、ポジションを建てる前の条件として

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

//買い注文を出す

}

Grzesiekさん、ありがとうございます!私はこのEAを共有することはできません。

私はあなたが私を助けることができることを願っています。ありがとうございます。

 
alvintran:
皆さん、ありがとうございました。

私のEAには何の問題もありません。しかし、私のEAは何の問題もなく、ただ何もしないだけです。

そこで、ポジションを建てる前の条件として

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

//買い注文を出す

}

このEAを共有することはできません。

よろしくお願いします。ありがとうございました。

なぜあなたは助けを求めて いるのですか?

 

ECNブローカーとストップロス

私はMQLプログラミングに新しいです。私を助けてください。

私は成行注文でストップロスを行おうとしています。これを達成する最善の方法は何ですか?私はordersendで試してみましたが、それは判明した

ECNブローカーは、市場注文でストップロスをサポートしていないことが判明した。

私は検索し、私が見つけた唯一の情報は、我々は最初の保留中の順序を持っているし、その順序を変更する必要があることです。

私はこれを試して、問題は、多くの場合、保留中の注文はすでに変更注文の前に実行されているため、注文の変更が失敗することです。

以下は、成行注文の売り注文です。

STicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,null,MagicNumber,0,red);

以下は、注文の変更です。

OrderSelect(SlTicket, SELECT_BY_TICKET).OpenPrice=OrderOpenPrice。

OpenPrice = OrderOpenPrice();

{ double SellStopLoss = OpenPrice - (StopLoss * UsePoint);

bool TicketMod1 = OrderModify(SellTicket ,OrderOpenPrice() , SellStopLoss , 0,0);

}

このストップメソッドがうまくいくこともあれば、マーカーオーダーがすでに実行され、オーダーモディファイが失敗することもあります。

ECNブローカーのストップロス 注文を実現するのを助けてください。

 
winston99:
私はMQLプログラミングの初心者です。私を助けてください。

成行注文でストップロスを狙おうとしています。これを達成するための最良の方法は何ですか。私はordersendで試してみましたが、それは判明した

ECNブローカーは、市場注文でストップロスをサポートしていないことが判明した。

私は検索し、私が見つけた唯一の情報は、我々は最初の保留中の順序を持っているし、その順序を変更する必要があることです。

私はこれを試して、問題は、多くの場合、保留中の注文はすでに変更注文の前に実行されているため、注文の変更が失敗することです。

以下は、成行注文の売り注文です。

STicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,null,MagicNumber,0,red);

以下は、注文の変更です。

OrderSelect(SlTicket, SELECT_BY_TICKET).OpenPrice=OrderOpenPrice。

OpenPrice = OrderOpenPrice();

{ double SellStopLoss = OpenPrice - (StopLoss * UsePoint);

bool TicketMod1 = OrderModify(SellTicket ,OrderOpenPrice() , SellStopLoss , 0,0);

}

この停止方法は、うまくいく場合もあれば、マーカーオーダーがすでに実行されているためにオーダーモディファイが失敗する場合もあります。

ECNブローカーのストップロス注文を実現するのを助けてください。

ECNブローカーでストップロスを実現する唯一の方法は、ストップなしの注文を送信し、それを変更することです。

私はこうしています。

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,0,0,comment,magic);

OrderSelect(ticket,SELECT_BY_TICKET);

OrderModify(ticket,OrderOpenPrice(),sltpValue(Ask +StopLoss*Point, StopLoss),sltpValue(Bid- TakeProfit*Point, TakeProfit),0).を実行します。

で、特に問題はありません(sltpはSl/TPの値を与えてくれます)。

 
g.pociejewski:
ECNブローカーでストップロスを実現する唯一の方法は、ストップなしの注文を送信し、それを修正することです。

使っています。

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,0,0,comment,magic);

OrderSelect(ticket,SELECT_BY_TICKET).OrderModify(ticket,OrderOpenPrice);

OrderModify(ticket,OrderOpenPrice(),sltpValue(Ask +StopLoss*Point, StopLoss),sltpValue(Bid- TakeProfit*Point, TakeProfit),0).この時、スリッページの計算方法は?

で、問題はありません(sltpはSl/TPの値を教えてください)。

スリッページはどのように計算するのですか?

私は0を渡しているので、それが問題なのかもしれません。

 

ZIG ZAGヘルプ

こんにちは。

ジグザグとピッチフォークに基づいたEAを作ろうとしています。

ピッチフォークを描くには、最後の4つのジグザグの価格と時間が必要です。

私はICustom()で価格を取得します。

しかし、私は時間を取得する方法がわかりません。

どうか私を助けてください

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

----------------------------------------------------------------------

これは価格のためのものです...

int n0, n1, n2, n3, i0, i1, i2, i3 = 0;

double zig0, zig1, zig2, zig3;

while(n3<4)

{

zig3=iCustom(NULL, 0, "ZigZag", 0, i3);

if(zig3>0) n3+=1;

i3++;

}

while(n2<3)

{

zig2=iCustom(NULL, 0, "ZigZag", 0, i2);

if(zig2>0) n2+=1;

i2++;

}

while(n1<2)

{

zig1=iCustom(NULL, 0, "ZigZag", 0, i1);

if(zig1>0) n1+=1;

i1++;

}

while(n0<1)

{

zig0=iCustom(NULL, 0, "ZigZag", 0, i0);

if(zig0>0) n0+=1;

i0++;

}

...........................................

 

indiの小変更が必要

これは日足ボックスのコードですが、少し変更が必要です。東京市場が終了し、ロンドンが開くところにギャップを持たせたいのです。そこで、ボックスは青(全日)、ギャップは白とします

#プロパティ indicator_chart_window

int gi_76 = 50;

文字列 gs_80 = "00:00";

文字列 gs_88 = "23:59";

外部カラー Color_Up = Lavender;

extern color Color_Down = ウィート。

extern color Color_Neutral = LightGray; extern color Color_Down = Wheat;

bool gi_108 = TRUE;

double gd_112;

int g_color_120 = 赤。

void init() {

DeleteObjects()を実行。

for (int l_count_0 = 0; l_count_0 < gi_76; l_count_0++) CreateObjects("PWT1" + l_count_0, g_color_120).WriteObjects("PWT1", g_count_120).WriteObjects("PWT1", g_color_120);

Comment("");

void start() {

int l_datetime_0 = TimeCurrent();

DrawObjects(l_datetime_0, "PWT1" + l_count_4, gs_80, gs_88);

for (l_datetime_0 = decDateTradeDay(l_datetime_0); TimeDayOfWeek(l_datetime_0) > 5; l_datetime_0 = decDateTradeDay(l_datetime_0)) { { {。

}

}

}

void DrawObjects(int ai_0, string a_name_4, string as_12, string as_20) { }.

int l_str2time_28 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " " + as_12);

int l_str2time_32 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " + as_20); int l_str2time_32 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " + as_20);

int l_shift_52 = iBarShift(NULL, 0, l_str2time_28);

int l_shift_56 = iBarShift(NULL, 0, l_str2time_32); int l_shift_60 = iBarShift(NULL, 0, l_str2time_32)

int l_shift_60 = iBarShift(NULL, PERIOD_D1, l_str2time_28)です。

if (iClose(NULL, PERIOD_D1, l_shift_60) - iOpen(NULL, PERIOD_D1, l_shift_60) > 0.0) gd_112 = iClose(NULL, PERIOD_D1, l_shift_60) - iOpen(NULL, PERIOD_D1, l_shift_60);

else gd_112 = iOpen(NULL, PERIOD_D1, l_shift_60) - iClose(NULL, PERIOD_D1, l_shift_60);

if (gd_112 < iATR(NULL, PERIOD_D1, 7, l_shift_60) / 100.0) g_color_120 = Color_Neutral;

else {

if (iOpen(NULL, PERIOD_D1, l_shift_60) > iClose(NULL, PERIOD_D1, l_shift_60)) g_color_120 = Color_Down.PERIOD_D1, l_shift_60, iOpen(NULL) > iClose(NULL) > iColor_Down;

さもなくば

if (iClose(NULL, PERIOD_D1, l_shift_60) > iOpen(NULL, PERIOD_D1, l_shift_60)) g_color_120 = 色上(Color_Up);

}

double l_high_36 = High;

double ld_44 = Low。

if (!gi_108) {

l_high_36 = 0;

ld_44 = 2.0 * ld_44;

}

ObjectSet(a_name_4, OBJPROP_TIME1, l_str2time_28);

ObjectSet(a_name_4, OBJPROP_PRICE1, l_high_36);

ObjectSet(a_name_4, OBJPROP_TIME2, l_str2time_32)とします。

ObjectSet(a_name_4, OBJPROP_PRICE2, ld_44); ObjectSet(a_name_4, OBJPROP_PRICE2, l_str2time_32)

ObjectSet(a_name_4, OBJPROP_COLOR, g_color_120)とします。

}

int decDateTradeDay(int ai_0) { { int li_4 = TimeYear (年)

int li_4 = TimeYear(ai_0);

int li_8 = TimeMonth(ai_0);

int li_12 = TimeDay(ai_0);

int l_hour_16 = TimeHour(ai_0);

int l_minute_20 = TimeMinute(ai_0);

li_12--;

if (li_12 == 0) {

li_8--;

if (li_8 == 0) {

li_4--;

li_8 = 12;

}

if (li_8 == 1 || li_8 == 3 || li_8 == 5 || li_8 == 7 || li_8 == 8 || li_8 == 10 || li_8 == 12) li_12 = 31;

if (li_8 == 2) { もし (li_8 == 2)

if (MathMod(li_4, 4) == 0.0) li_12 = 29;

else li_12 = 28;

}

if (li_8 == 4 || li_8 == 6 || li_8 == 9 || li_8 == 11) li_12 = 30;

}

return (StrToTime(li_4 + "." + li_8 + "." + li_12 + " " + l_hour_16 + ":" + l_minute_20)) とします。

void CreateObjects(string a_name_0, color a_color_8) { { ObjectCreate(文字列)

ObjectCreate(a_name_0,OBJ_RECTANGLE, 0, 0, 0, 0)を実行します。

ObjectSet(a_name_0, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet(a_name_0, OBJPROP_COLOR, a_color_8); ObjectSet(a_name_0, OBJPROP_COLOR, a_color_8)

ObjectSet(a_name_0, OBJPROP_BACK, TRUE);

void DeleteObjects() { (オブジェクトの削除)

for (int l_count_0 = 0; l_count_0 < gi_76; l_count_0++) ObjectDelete("PWT1" + l_count_0)を実行します。

}

void deinit() {

DeleteObjects();

Comment("");