[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 87

 
Mathemat:

申し訳ないが、『Annals』には間違いなく載っている。英語を知らないというのは言い訳にならない。

マイクロのEURUSDのスプレッドは正直よくわからん。あなたはこのフォーラムから追放されたのでしょう。このクソ野郎どもは、常にあなたを締め出そうと考えているのです。

なんとかサインインできました、ありがとうございます。
 

こんにちは、一点だけ、初歩的なことだと思いますが、ご協力お願いします。

int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,0,0);
Alert(GetLastError());
return;
}.

スクリプトが成行注文を開き、すべてがOKになります。しかし、SLやTPに何らかの値を設定すると、「Wrong Stop」エラーが発生します。

int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,Bid-50*Point,Bid+50*Point);
Alert(GetLastError());
return;
}.

このコードはもう使えません。どうしたんですか?理解できない...。

int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,1.31845,1.40000);
Alert(GetLastError());
return;
}.

また、ストップやプロフィットを数値で入力してもうまくいきません。注文からストップオーダーまでの最短距離はOKです。

 

プロフェッショナルの皆様へ質問があります。私はEAを持っていますが、それはいくつかの基準で取引しています。すでに試したことがあるので、どれだけ多くのシグナルを得たかわかりますが、それをどのように使えばいいのかわかりません。ありがとうございました。

 
azik1306:

プロフェッショナルの皆様へ質問があります。私はEAを持っていますが、それはいくつかの基準で取引しています。すでに試したことがあるので、どれだけのシグナルが得られるかわかりましたが、その使い方がわかりません。すでに試したが、使い方がわからない。

-マジックナンバーの異なるシグナルで取引を開始することが可能です。

-取引開始時にコメント欄に「マーク」(例:同レベルのトロール)を入れてから分析することが可能

ご質問のコードを見ないと、何をしたいのかよくわかりません。

 

は、およそ次のようなコードになります。

for( int c=1; c<=OrdersTotal(); c++) // 注文ループ
{
OrderSelect(c-1,SELECT_BY_POS); // 他にあれば
// 注文分析:
if(OrderMagicNumber()<1000)

if (R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
} }.
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
} }.
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
} }.
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))。
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
} }.
return;
}.
//

for(c=1; c<=OrdersTotal(); c++) // 注文ループ
{
OrderSelect(c-1,SELECT_BY_POS); // If there is another
// 注文分析:
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point)) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
} }.
if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
} }.
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
} }.
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))。
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
} }.
return;
}

//--------------------------------------------------------
// 注文値
RefreshRates(); // データの更新
Min_Lot=MarketInfo(Symb,MODE_MINLOT); // 最小値(Min.lots
Free =AccountFreeMargin(); // フリー資金
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// 1ロットの値
Step =MarketInfo(Symb,MODE_LOTSTEP); // ステップ変更サイズ

if (Lots > 0) // ロットが設定されていたら
Lts =Lots.Lots.Lots.Lots.Lots.Lots.Lots.Lots;// 一緒に働く
else // % フリーファンド
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// 開くには

if(Lts < Min_Lot) Lts=Min_Lot; // 最小値以下ではない
if(Lts*One_Lot > Free) // 無料よりたくさん高いです。
{
Alert(" Not enough money ", Lts," Lots");
return; // Exit start()
}
//---------------------------------------------- 8 --
// 新規注文

{
if (Total<2 && Opn_B==true && B==false)
{
// 買い注文を出す判断材料となるもの。買い
RefreshRates(); // データ更新
SL=Bid - New_Stop(StopLoss)*Point; // SLオープンの計算
TP=Bid + New_Stop(TakeProfit)*Point; // TPオープンの計算
Alert("Attempting to open Buy. Waiting for reply...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,NULL,y);/Open Buy
if (Ticket > 0) // うまくいきました :)
{
Alert ("Opened Buy order ",Ticket);
B=true;
S=false;
Y=OrderMagicNumber();
R=1;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue;// リトライ
// 終了 start()
}
if (Total<2 && Opn_S==true && S==false) // 注文をオープンします。none +
{
Sleep(10000); // open Sell crit.売り
RefreshRates(); // データ更新
SL=Ask + New_Stop(StopLoss)*Point; // SLオープンの計算
TP=Ask - New_Stop(TakeProfit)*Point; // TPオープンの計算
Alert("Attempting to open Sell. Waiting for reply...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,NULL,y);/Open Sel
if (Ticket > 0) // うまくいきました :)
{
Alert ("Sell order opened ",Ticket);
S=true;
B=false;
Y=OrderMagicNumber();
R=2;
return; // 終了 start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue;// リトライ
// 終了 start()
}

if (Total<2 && Opn_B1==true && B1==false)
{
RefreshRates(); // データ更新
SL1=Bid - New_Stop1(StopLoss1)*Point; // SLオープン算出
TP1=Bid + New_Stop1(TakeProfit1)*Point; // TPオープンの計算
Alert("Attempting to open Buy. Waiting for reply...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL1,TP1,NULL,x);/Open Buy
if (Ticket > 0) // うまくいきました(^^)
{
Alert ("Opened Buy order ",Ticket);
B1=true;
S1=false;
X=OrderMagicNumber();
Z=3;
return; // 終了 start()
}
if (Fun_Error(GetLastError())==1) // エラー処理
continue;// リトライ
// 終了 start()
}
if (Total<2 && Opn_S1==true && S1==false) // オープンオーダーを行います。none +
{
Sleep(10000); // open Sell crit.売り
RefreshRates(); // データ更新
SL1=Ask + New_Stop1(StopLoss1)*Point; // SLオープンの計算
TP1=Ask - New_Stop1(TakeProfit1)*Point; // TPオープンの計算。
Alert("Attempting to open Sell. Waiting for reply...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL1,TP1,NULL,x);/Open Sel
if (Ticket > 0) // 成功しました :).
{
Alert ("Sell order open ",Ticket);
S1=true;
B1=false;
X=OrderMagicNumber();
Z=4;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue; // Retry
// Exit start()
}
break; // Exit while
} } // 終了

 
orderselectとmajikの両方を試したが、EAが注文を混乱させる
 
azik1306:

のようなコードになります。


このような幅の広いコードは、目で読むと疲れるので、ファイルか、せめてSRC(上部編集バーで選択可能)で添付してください。
 
azik1306:

は、およそ次のようなコードになります。

for( int c=1; c<=OrdersTotal(); c++) // オーダーループ
{
OrderSelect(c-1,SELECT_BY_POS); // 次がある場合
// オーダー解析。
if(OrderMagicNumber()<1000)
if(R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,BLUE)。
を返します。
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue).を実行。
を返します。
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue)を実行。
を返します。
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))。
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue)を実行しました。
を返します。
}
を返します。
}
//--------------------------------------------------------------------
// 原則的に、これ以上何も書く必要はありません。

for(c=1; c<=OrdersTotal(); c++) // オーダーループ

{
OrderSelect(c-1,SELECT_BY_POS); // 次がある場合
// オーダー解析。
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue)を実行。
を返します。
}

if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue)を実行しました。
を返します。
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue)を実行。
を返します。
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))。
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue)を実行しました。
を返します。
}
返します // しかし、「念のため」、「テストショット」もあります ;)
}

........他のことはどうでもいいんだ......。

//

//--------------------------------------------------------------------
// 注文値

 
ありがとうございます、今試してみます。
 
コードを修正したが、EAが各注文に個別にアプローチすることを望んでいない